我试图在Bing地图上运行样式,从外部文件加载多边形。该文档有两个例子,首先是直接在javascript中包含数据:
//Load the GeoJson Module.
Microsoft.Maps.loadModule('Microsoft.Maps.GeoJson', function () {
//Parse the GeoJson object into a Bing Maps shape.
var shape = Microsoft.Maps.GeoJson.read(myGeoJson, {
polygonOptions: {
fillColor: 'rgba(255,0,0,0.5)',
strokeColor: 'white',
strokeThickness: 5
}
});
//Add the shape to the map.
map.entities.push(shape);
});
(其中' myGeoJson'是先前定义的变量)
,第二个从文件中加载它:
//Load GeoJSON module.
Microsoft.Maps.loadModule('Microsoft.Maps.GeoJson', function () {
//Read the GeoJSON file that is hosted on the same domain.
Microsoft.Maps.GeoJson.readFromUrl('data/Countries.js',
function (shapes) {
//Add the shape(s) to the map.
map.entities.push(shapes);
});
});
我希望能够从文件加载,如第二个示例中所示,但是将样式设置为第一个。
我在弄清楚如何做到这一点时遇到了麻烦。我尝试在第一个示例中通过调用GeoJson.readFromUrl()简单地替换对GeoJson.read()的调用,但是这失败了。该文档没有提供任何关于如何设置从文件加载geojson样式的线索。
任何人都可以给我任何提示或提示吗?
答案 0 :(得分:3)
尝试以下方法:
//Load GeoJSON module.
Microsoft.Maps.loadModule('Microsoft.Maps.GeoJson', function () {
//Read the GeoJSON file that is hosted on the same domain.
Microsoft.Maps.GeoJson.readFromUrl('data/Countries.js',
function (shapes) {
//Add the shape(s) to the map.
map.entities.push(shapes);
}, null, {
polygonOptions: {
fillColor: 'rgba(255,0,0,0.5)',
strokeColor: 'white',
strokeThickness: 5
}
});
注意回调函数和样式之间的“null”。如果需要使用JSONP请求文件,则可以在该字段中指定JSONP URL参数。