2014-03-31 53 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