Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/221.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android Xamarin谷歌地图中心_Android_Google Maps_Xamarin.android - Fatal编程技术网

Android Xamarin谷歌地图中心

Android Xamarin谷歌地图中心,android,google-maps,xamarin.android,Android,Google Maps,Xamarin.android,我用谷歌地图制作了一个Xamarin应用程序。我在地图上添加了多个标记,显示设备所在位置附近的商店。当我打开应用程序时,我把它放在最近的商店的中心 问题是,当我试图滑动地图以查看周围的情况时,它会返回到最近的标记的中心。我想禁用它,可能吗 添加标记的代码位于OnLocationChanged方法中 多谢各位 private void GetCompaniesByLocation(double latitude,double longitude) { string url

我用谷歌地图制作了一个Xamarin应用程序。我在地图上添加了多个标记,显示设备所在位置附近的商店。当我打开应用程序时,我把它放在最近的商店的中心

问题是,当我试图滑动地图以查看周围的情况时,它会返回到最近的标记的中心。我想禁用它,可能吗

添加标记的代码位于OnLocationChanged方法中

多谢各位

private void GetCompaniesByLocation(double latitude,double longitude)
    {
        string url = "http://127.0.0.1/testapi/handler.php/latlong/" + latitude + "/" + longitude;
        BitmapDescriptor icon = BitmapDescriptorFactory.FromResource(Resource.Drawable.here_icon);

        Companies[] onlines = CallRestServiceCompanies(url);
        int i = 0;
        foreach (Companies online in onlines)
        {
            if (i == 0) {
                locationPoint = new LatLng(online.address_lat, online.address_long);
                CameraUpdate camera = CameraUpdateFactory.NewLatLngZoom(locationPoint, 16);
                mMap.AnimateCamera(camera);
                i++;
            }
            LatLng latlng = new LatLng(online.address_lat, online.address_long);
            MarkerOptions options = new MarkerOptions();

            options.SetPosition(latlng);
            options.SetTitle(online.company_name);
            options.SetSnippet(online.company_website);
            options.SetIcon(icon);

            mMap.AddMarker(options);
        }
}
和OnLocationChanged方法:

public void OnLocationChanged(Location location)
    {
        currentLocation = location;
        if(currentLocation != null)
        {
            GetCompaniesByLocation(currentLocation.Latitude, currentLocation.Longitude);
        }
    }

当然,这是持续运行的。我只想在位置实际发生变化时被触发

这不是默认行为,您必须这样做,请发布您的代码。为了能够将相机设置到最近的商店,我使用了AnimateCamera。否则,它将显示整个世界,而不仅仅是附近。当调用onLocationChanged时,您正在移动相机。你无法控制何时调用它。@Nanoc你能告诉我怎么做吗?只需第一次移动它,只需单击按钮。。。除了在线,任何东西都改变了。