2014-03-31 51 views
3

我們在創建多邊形時遇到了問題,因爲它們沒有出現在地圖上。我們按照本教程來實現我們的解決方案: http://googlemaps.subgurim.net/ejemplos/ejemplo_94100_Pol%C3%ADgonos.aspx多邊形不會顯示在gmap上

該應用程序是在visual basic中開發的。網絡框架版本4.

這是我們在地圖上生成多邊形的代碼的一部分。

Dim latlng As New GLatLng(46, 21) 
GMap1.setCenter(latlng, 4) 

Dim puntos As New List(Of GLatLng)() 
puntos.Add(latlng + New GLatLng(0, 8)) 
puntos.Add(latlng + New GLatLng(-0.5, 4.2)) 
puntos.Add(latlng) 
puntos.Add(latlng + New GLatLng(3.5, -4)) 
puntos.Add(latlng + New GLatLng(4.79, +2.6)) 

Dim poligono As New GPolygon(puntos, "557799", 3, 0.5, "237464", 0.5) 
poligono.close() 

GMap1.Add(poligono) 

我們感謝誰能提供幫助來解決這個問題 我們有。

附件我留下地圖圖像,如果根據給定的座標 定位,但考慮到多邊形不顯示。

+0

我回答了這個問題: http://stackoverflow.com/questions/ 22346498/google-maps-subgurim-polygons-are-not-working-any/23081556#23081556 – AGhosT

回答

1

它今天有一些Javascript數組定義。

當您調用GMap1.Add()時,您會注意到polygon.ToString()會在生成的Javascript中產生[[]。

替換[[與[將解決您的問題。

如果您使用Add overload接受多邊形,您需要稍微更改代碼以利用自定義Javascript超載。

要重現坐落在其網站上的第一個多邊形例如在http://en.googlemaps.subgurim.net/ejemplos/ejemplo_94100_Pol%C3%ADgonos.aspx東西沿着以下行會做:

GLatLng latlng = new GLatLng(46, 21); 
GMap1.setCenter(latlng, 4); 
List<GLatLng> puntos = new List<GLatLng>(); 
puntos.Add(latlng + new GLatLng(0, 8)); 
puntos.Add(latlng + new GLatLng(-0.5, 4.2)); 
puntos.Add(latlng); 
puntos.Add(latlng + new GLatLng(3.5, -4)); 
puntos.Add(latlng + new GLatLng(4.79, +2.6)); 
GPolygon poligono = new GPolygon(puntos, "557799", 3, 0.5, "237464", 0.5); 
poligono.close(); 

var objJs = new StringBuilder(); 
objJs.Append("function addborder" + 0 + "()"); 
objJs.Append("{"); 
objJs.Append(poligono.ToString(GMap1.GMap_Id)); 
objJs.Replace("clickable:False", "clickable:false");// ' Replace incorrect False statement 
objJs.Append("}"); 

GMap1.Add("addborder" + 0 + "();", true); 
var objString = objJs.ToString(); 
var newstring = objString.Replace("[[", "[").Replace("]]", "]"); 
GMap1.Add(newstring); 
+0

謝謝!解決了我的問題:D:D – araad1992