如何在 xamarin android 的 google 地图中显示一些商店
How to show some store in google maps for xamarin android
我想在我的地图中添加我搜索过的商店的标记。例如,我希望我的地图只显示英国的所有七点十一分店,然后我想找到离我当前位置最近的七点十一分。有没有什么方法可以做到这一点或我正在寻找的参考资料。这是我当前的代码
using Android.App;
using Android.Widget;
using Android.OS;
using Android.Gms.Maps;
using Android.Gms.Maps.Model;
using System;
namespace _Map
{
[Activity(Label = "_Map", Icon = "@drawable/icon", MainLauncher =true)]
public class MainActivity : Activity, IOnMapReadyCallback
{
private GoogleMap GMap;
protected override void OnCreate(Bundle bundle)
{
base.OnCreate(bundle);
// Set our view from the "main" layout resource
SetContentView(Resource.Layout.Main);
SetUpMap();
}
private void SetUpMap()
{
if (GMap == null)
{
FragmentManager.FindFragmentById<MapFragment>(Resource.Id.googlemap).GetMapAsync(this);
}
}
public void OnMapReady(GoogleMap googleMap)
{
this.GMap = googleMap;
GMap.UiSettings.ZoomControlsEnabled = true;
BitmapDescriptor image = BitmapDescriptorFactory.FromResource(Resource.Drawable.gramed);
LatLng latlng = new LatLng(Convert.ToDouble(-6.196279), Convert.ToDouble(106.822369));
LatLng latlng2 = new LatLng(Convert.ToDouble(-6.220489), Convert.ToDouble(106.814349));
LatLng latlng3 = new LatLng(Convert.ToDouble(-6.163067), Convert.ToDouble(106.832605));
CameraUpdate camera = CameraUpdateFactory.NewLatLngZoom(latlng, 15);
GMap.MoveCamera(camera);
MarkerOptions options = new MarkerOptions()
.SetPosition(latlng)
.SetIcon(image)
.SetSnippet("Open 9AM-11PM")
.SetTitle("Gramedia");
GMap.AddMarker(options);
MarkerOptions options1 = new MarkerOptions()
.SetPosition(latlng2)
.SetIcon(image)
.SetTitle("Gramedia 2")
.SetSnippet("Open 8AM - 10PM");
GMap.AddMarker(options1);
MarkerOptions options2 = new MarkerOptions()
.SetPosition(latlng3)
.SetIcon(image)
.SetSnippet("Open 8AM-9PM")
.SetTitle("Gramedia 3");
GMap.AddMarker(options2);
}
}
}
如您所见,我必须手动为每家商店添加标记,我应该在地图中添加大约一百家商店。有什么简单的方法可以做到这一点吗?
I want to my maps add markers from store that i searched. example i want my maps only shows all seven eleven store in England and then i want to find the nearest seven eleven in my current location. Is there any method to do that or reference that i was looking for.
您可以使用Place Search API. By filtering place types的附近搜索,您可以限制您的搜索结果存储。并且在得到搜索结果后,您可以选择距离您所在位置最近的七家或十一家商店,并为这七家商店添加标记。
我想在我的地图中添加我搜索过的商店的标记。例如,我希望我的地图只显示英国的所有七点十一分店,然后我想找到离我当前位置最近的七点十一分。有没有什么方法可以做到这一点或我正在寻找的参考资料。这是我当前的代码
using Android.App;
using Android.Widget;
using Android.OS;
using Android.Gms.Maps;
using Android.Gms.Maps.Model;
using System;
namespace _Map
{
[Activity(Label = "_Map", Icon = "@drawable/icon", MainLauncher =true)]
public class MainActivity : Activity, IOnMapReadyCallback
{
private GoogleMap GMap;
protected override void OnCreate(Bundle bundle)
{
base.OnCreate(bundle);
// Set our view from the "main" layout resource
SetContentView(Resource.Layout.Main);
SetUpMap();
}
private void SetUpMap()
{
if (GMap == null)
{
FragmentManager.FindFragmentById<MapFragment>(Resource.Id.googlemap).GetMapAsync(this);
}
}
public void OnMapReady(GoogleMap googleMap)
{
this.GMap = googleMap;
GMap.UiSettings.ZoomControlsEnabled = true;
BitmapDescriptor image = BitmapDescriptorFactory.FromResource(Resource.Drawable.gramed);
LatLng latlng = new LatLng(Convert.ToDouble(-6.196279), Convert.ToDouble(106.822369));
LatLng latlng2 = new LatLng(Convert.ToDouble(-6.220489), Convert.ToDouble(106.814349));
LatLng latlng3 = new LatLng(Convert.ToDouble(-6.163067), Convert.ToDouble(106.832605));
CameraUpdate camera = CameraUpdateFactory.NewLatLngZoom(latlng, 15);
GMap.MoveCamera(camera);
MarkerOptions options = new MarkerOptions()
.SetPosition(latlng)
.SetIcon(image)
.SetSnippet("Open 9AM-11PM")
.SetTitle("Gramedia");
GMap.AddMarker(options);
MarkerOptions options1 = new MarkerOptions()
.SetPosition(latlng2)
.SetIcon(image)
.SetTitle("Gramedia 2")
.SetSnippet("Open 8AM - 10PM");
GMap.AddMarker(options1);
MarkerOptions options2 = new MarkerOptions()
.SetPosition(latlng3)
.SetIcon(image)
.SetSnippet("Open 8AM-9PM")
.SetTitle("Gramedia 3");
GMap.AddMarker(options2);
}
}
}
如您所见,我必须手动为每家商店添加标记,我应该在地图中添加大约一百家商店。有什么简单的方法可以做到这一点吗?
I want to my maps add markers from store that i searched. example i want my maps only shows all seven eleven store in England and then i want to find the nearest seven eleven in my current location. Is there any method to do that or reference that i was looking for.
您可以使用Place Search API. By filtering place types的附近搜索,您可以限制您的搜索结果存储。并且在得到搜索结果后,您可以选择距离您所在位置最近的七家或十一家商店,并为这七家商店添加标记。