从地图中的编辑文本搜索标记片段android [英] search marker from edit text in maps fragment 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
中搜索它是否有任何函数或过程,如
这是从数组标记
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(BitmapDescriptorFactory.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屋!