1

如何在不使用任何第三方参考的情况下将 shapefile(.shp) 与 bing 地图一起使用?我只想使用 bing maps api 库来执行此操作。所以建议我如何实现这一目标?

我已经尝试了下面描述的 bing 地图。这是我的代码:

$.ajax({
            type: "POST",
            url: "GISFunctions.asmx/GetShapeFileData",
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            success: function (data, textStatus, jqXHR) {
                var response = data.d;
                for (var i = 0; i < response.length; i++) {
                    var polygonGeometry = response[i];
                    var vertices = new Array();
                    var numCoordinates = polygonGeometry.length;
                    for (var j = 0; j < numCoordinates; j++) {
                        var CoOrdinates = polygonGeometry[j];
                        var x = CoOrdinates[1];
                        var y = CoOrdinates[0];
                        vertices[j] = new Microsoft.Maps.Location(x, y);
                    }
                    var polygoncolor = new Microsoft.Maps.Color(100, 100, 0, 100);
                    var polygon = new Microsoft.Maps.Polygon(vertices, { fillColor: polygoncolor, strokeColor: polygoncolor });
                // Add the shape to the map
                    map.entities.push(polygon);
                }
            },
            error: function (xhr, status, error) {
                alert(xhr.responseText);
            }
        });

“GISFunctions.asmx/GetShapeFileData”是我的网络服务方法。它从 shapefile 获取数据。逐一读取 shapefile 的记录并获取每个记录的多边形的坐标。在上面的 Jquery Ajax 函数中,我区分了我的数据并创建了包含我的多边形顶点的数组,然后根据下面的链接,我试图将这些多边形映射到 Bing Map

http://msdn.microsoft.com/en-us/library/gg427604.aspx

当我浏览静态数据时,我可以轻松地在 Bing Map 上绘制一个多边形。但是当我尝试动态创建这些多边形时,我上面的代码不起作用。它不会在地图上绘制任何多边形,也不会给出我的错误..

我是 GIS 功能的新手,所以请建议我正确的方向..

4