私はGoogleMap ControlにGeoの位置を持つマーカーのコレクションを持っています。最小緯度と最大緯度の長さを計算し、マップの中心に中心点を見つけることができますが、プログラムでズームレベルを計算する必要もあります。どのようにこれを行うには誰ですか?GoogleマップコントロールのズームレベルをC#で計算する
1
A
答えて
0
をするためにこれを使用Googleマップコントロールプロジェクトサイトのissue pageあなたはそれを行うためにJavaScriptを注入する必要があります。
// Set the map to call zoomMap javascriptFunction
GoogleMap.OnClientMapLoad = "zoomMap";
// build zoomMap javascript function. I already know what my bounds are
StringBuilder script = new StringBuilder();
script.AppendFormat("<script>").AppendLine();
script.Append("function zoomMap() {").AppendLine();
script.AppendFormat("var sw = new GLatLng({0}, {1});", minLat, minLong).AppendLine();
script.AppendFormat("var ne = new GLatLng({0}, {1});", maxLat, maxLong).AppendLine();
script.AppendFormat("var bounds = new GLatLngBounds(sw, ne);").AppendLine();
script.AppendFormat("var zoomLevel = GoogleMap.GMap.getBoundsZoomLevel(bounds);").AppendLine();
script.AppendFormat("GoogleMap.GMap.setZoom(zoomLevel);", GoogleMap.ClientID).AppendLine();
script.Append("}").AppendLine();
script.AppendFormat("</script>").AppendLine();
Page.RegisterClientScriptBlock("map", script.ToString());
1
あなたは、その後、各マーカーのために、あなたの限界を延長するだけで、その後
var bounds = new google.maps.LatLngBounds();
をV3を使用している場合:
bounds.extend(myLatLng);
と自動的に位置やズーム
でこの発見map.fitBounds(bounds);
GoogleMapのコントロールは、私がそれと思ったものではありません。これは、私が望んでいたほど役に立たないかもしれません。 google.maps APIを使用するようにマップを変更した場合、これは間違いなくあなたのために行います – NinjaNye