多边形未显示在gmap上

时间:2014-03-31 18:47:08

标签: asp.net .net vb.net subgurim-maps

我们在创建多边形时遇到问题,因为它们没有出现在地图上。我们已按照本教程实施我们的解决方案: http://googlemaps.subgurim.net/ejemplos/ejemplo_94100_Pol%C3%ADgonos.aspx

该应用程序是在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)

我们感谢谁能提供帮助来解决这个问题 我们有。

附件我留下地图图像,如果根据坐标定位 但是考虑到没有显示多边形。

1 个答案:

答案 0 :(得分: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 );