我需要创建地图,它将使用GeoJSON数据(MultiLineString格式)作为Google的数据层。我创建了一个Google API项目,并拥有一个API密钥。
我尝试了以下例子:
示例I:
https://developers.google.com/maps/documentation/javascript/examples/layer-data-simple
(这呈现多边形,但似乎不支持MultiLineString的样式)。
示例II:
https://developers.google.com/maps/documentation/javascript/examples/layer-data-dragndrop
(本例允许通过拖放添加GeoJSON,但我不知道如何保存映射和数据层。)
来自GeoJSON MultiLineString的http://geojsonlint.com示例:
{
"type": "MultiLineString",
"coordinates": [
[
[
-105.0214433670044,
39.57805759162015
],
[
-105.02150774002075,
39.57780951131517
],
[
-105.02157211303711,
39.57749527498758
],
[
-105.02157211303711,
39.57716449836683
],
[
-105.02157211303711,
39.57703218727656
],
[
-105.02152919769287,
39.57678410330158
]
],
[
[
-105.01989841461182,
39.574997872470774
],
[
-105.01959800720215,
39.57489863607502
],
[
-105.01906156539916,
39.57478286010041
]
],
[
[
-105.01717329025269,
39.5744024519653
],
[
-105.01698017120361,
39.574385912433804
],
[
-105.0166368484497,
39.574385912433804
],
[
-105.01650810241699,
39.5744024519653
],
[
-105.0159502029419,
39.574270135602866
]
],
[
[
-105.0142765045166,
39.57397242286402
],
[
-105.01412630081175,
39.57403858136094
],
[
-105.0138258934021,
39.57417089816531
],
[
-105.01331090927124,
39.57445207053608
]
]
]
}发布于 2016-07-20 22:05:10
跟随文档中的示例
数据类 google.maps.Data类 一种用于显示地理空间数据的层。可以显示点、线串和多边形. 默认情况下,每个Map都有一个数据对象,因此大多数情况下不需要构造一个数据对象。例如:
var myMap = new google.maps.Map(...);
myMap.data.addGeoJson(...);
myMap.data.setStyle(...); 概念小提琴的证明
代码片段:
function initialize() {
var map = new google.maps.Map(
document.getElementById("map_canvas"), {
center: new google.maps.LatLng(37.4419, 70.1419),
zoom: 3,
mapTypeId: google.maps.MapTypeId.ROADMAP
});
map.data.addGeoJson(jsonData);
map.data.setStyle({
strokeColor: "blue"
})
}
google.maps.event.addDomListener(window, "load", initialize);
var jsonData = {
"type": "FeatureCollection",
"features": [{
"type": "Feature",
"properties": {
"stroke": "#555555",
"stroke-width": 2,
"stroke-opacity": 1
},
"geometry": {
"type": "LineString",
"coordinates": [
[
79.8046875,
45.583289756006316
],
[
73.828125,
48.922499263758255
],
[
72.421875,
46.07323062540838
],
[
72.0703125,
42.553080288955826
],
[
79.453125,
41.77131167976407
],
[
78.046875,
37.71859032558816
],
[
72.7734375,
34.016241889667015
],
[
66.796875,
39.63953756436671
],
[
66.4453125,
48.45835188280866
],
[
74.1796875,
53.74871079689897
],
[
55.1953125,
55.7765730186677
],
[
49.92187499999999,
48.69096039092549
],
[
50.625,
40.17887331434696
]
]
}
}]
};html,
body,
#map_canvas {
height: 100%;
width: 100%;
margin: 0px;
padding: 0px
}<script src="https://maps.googleapis.com/maps/api/js"></script>
<div id="map_canvas"></div>
发布于 2016-07-20 21:51:00
您可以添加类似的GeoJSON
function loadGeoJsonString(geoString) {
var geojson = JSON.parse(geoString);
map.data.addGeoJson(geojson);
}使用
map.data.setStyle({
//Put styling here
});您可以对添加的GeoJSON进行样式设置。因此,在加载GeoJSON时不应用样式,但可以在加载之后添加样式。
https://stackoverflow.com/questions/38491370
复制相似问题