从地图中的编辑文本搜索标记片段android [英] search marker from edit text in maps fragment android

查看:80
本文介绍了从地图中的编辑文本搜索标记片段android的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

对不起,我刚开始学习编程。
我在我的应用程序中制作了地图活动,并且有一个搜索框可以查找我之前制作的标记。我的问题是如何从搜索框中在我的地图活动中找到标记?我没有使用数据库,我一个一个地做了一个标记,因为它只有10个标记。

  Double [] lat = {
-7.362366,-7.363552,
-7.360093,-7.384362,
-7.371319,-7.369428,
-7.342803,-7.364069,
-7.361312,-7.368688,
-7.358674,-7.369610,
-7.366610,-7.371556,
-7.348831,-7.362575
};
Double [] lon = {
108.545943,108.542081,$ b $ 108.605078,108.533789,$ b $ 108.528442,108.483738,$ b $ 108.553713,108.581835,$ b $ 108.533522,108.534660,
108.639087,108.540899,
108.561781,108.525056,
108.633850,108.537306
};
String [] nama = {
司徒Mustika,
休息区banjar atas,
Kolam Mandalare,
定居要求,
Lembah Pejamben,
Situ Leutik,
Pulo Majeti,
Situs Kokoplak,
Banjar伊斯兰中心,
塔曼kota Lapang Bakti,
Alun alun Langensari,
Alun alun Patroman,
Taman Dobo,
Taman Pintu singa,
Langensari体育中心,
Banjar水上乐园
};
for(int i = 0; i {
myMap.addMarker(new MarkerOptions()
.position(new LatLng(lat [i ],lon [i]))
.title(nama [i])
.icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_BLUE)));
}

现在我可以在地图上显示一个标记,但我想要做什么是从 EditText 中搜索它是否有任何函数或过程,如 onClick 从按钮?



这是从数组标记
Marker from array
接下来应该做什么? 解决方案

请尝试以下代码。这个方法 GoogleMap.addMarker()返回已添加的标记。将您的标记保存到列表中。

  List< Marker> list = new ArrayList< Marker>(); 

for(int i = 0; i< Lat.length; i ++)
{
Marker marker = map.addMarker(new MarkerOptions()
.position (新LatLng(Lat [i],Lon [i]))
.title(Market [i])
.snippet(Address [i])
.icon(BitmapDescriptorFactory.defaultMarker BitmapDescriptorFactory.HUE_BLUE)));
list.add(marker);
}

现在搜索符合您的条件的标记(这里是代码段)。


$ b $ pre $ for(Marker m:list){
if(m.getSnippet()。equals(yourSnippet)){
//移动谷歌地图专注于标记
break; //停止循环
}
}

另一种方式:

  searchbutton.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View view){


for(int i = 0; i< nama.length; i ++){
if(nama [i] .equals(et.getText.toString()) ){
//删除旧标记
oldmarker.remover();
//现在将这个新标记充满像这样
myMap.addMarker(new MarkerOptions().position(new LatLng (lat [i],lon [i])).title(nama [i]).icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptor Factory.HUE_BLUE)));

CameraPosition camPos = new CameraPosition .Builder()
.target(new LatLng(lat [i],lon [i]))
.zo om(18)
.build();
CameraUpdate camUpd3 = CameraUpdateFactory.newCameraPosition(camPos);
googleMap.animateCamera(camUpd3);

break;
}其他
{
//没有找到任何纳米。
}
}


}

});

我希望这可以帮到您,

I'm sorry i just begin learn programming. I made maps activity in my application and there is a search box to find marker that I've made before. My question is how to find a marker in my maps activity from search box? I didn't use database, I made a marker one by one because it's only 10 marker in my maps.

here is all of my marker inside array

Double [] lat = {
            -7.362366, -7.363552,
            -7.360093, -7.384362,
            -7.371319, -7.369428,
            -7.342803, -7.364069,
            -7.361312, -7.368688,
            -7.358674, -7.369610,
            -7.366610, -7.371556,
            -7.348831, -7.362575
    };
    Double [] lon = {
            108.545943, 108.542081,
            108.605078, 108.533789,
            108.528442, 108.483738,
            108.553713, 108.581835,
            108.533522, 108.534660,
            108.639087, 108.540899,
            108.561781, 108.525056,
            108.633850, 108.537306
    };
    String [] nama ={
            "Situ Mustika",
            "Rest area banjar atas",
            "Kolam Mandalare",
            "Dinding Sumanding",
            "Lembah Pejamben",
            "Situ Leutik",
            "Pulo Majeti",
            "Situs Kokoplak",
            "Banjar Islamic Center",
            "Taman kota Lapang Bakti",
            "Alun alun Langensari",
            "Alun alun Patroman",
            "Taman Dobo",
            "Taman Pintu singa",
            "Langensari Sport Center",
            "Banjar Waterpark"
    };
    for(int i = 0; i < lat.length; i++)
    {
        myMap.addMarker(new MarkerOptions()
                .position(new LatLng(lat[i], lon[i]))
                .title(nama[i])
                .icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_BLUE)));
    }

Now i can show a marker on my map, but what i want to do is to search it from EditText is there any function or procedure something like onClick from a button?

this is screenshoot from array marker Marker From array what should i do next?

解决方案

Try this following code.This method GoogleMap.addMarker() returns the Marker, which was added. Save your Markers to a List.

List<Marker> list = new ArrayList<Marker>();

  for(int i = 0; i < Lat.length; i++)
  {
     Marker marker = map.addMarker(new MarkerOptions()
        .position(new LatLng(Lat[i], Lon[i]))
        .title(Market[i])
        .snippet(Address[i])
        .icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_BLUE)));
     list.add(marker);
  }

Now search for the Marker, which fits your condition (here the snippet).

for(Marker m : list) {
    if(m.getSnippet().equals(yourSnippet)) {
        // move google map to focus on  marker
        break; // stop the loop
    }
}

Another way:

 searchbutton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {


                    for(int i=0; i < nama.length; i++) {
                        if (nama[i].equals(et.getText.toString())) {
                          //Remove old marker
                            oldmarker.remover();
                            // now inflate new marker like this
                            myMap.addMarker(new MarkerOptions() .position(new LatLng(lat[i], lon[i])) .title(nama[i]) .icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptor‌​Factory.HUE_BLUE)));‌

                            CameraPosition camPos = new CameraPosition.Builder()
                                    .target(new LatLng(lat[i],  lon[i]))
                                    .zoom(18)
                                    .build();
                            CameraUpdate camUpd3 = CameraUpdateFactory.newCameraPosition(camPos);
                            googleMap.animateCamera(camUpd3);

                            break;
                        }else
                        {
                            //NOt found any nama .
                        }
                    }


                    ​}

          });

I hope this may help you,

这篇关于从地图中的编辑文本搜索标记片段android的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆