首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Google中添加GeoJSON(MultiLineString)层

如何在Google中添加GeoJSON(MultiLineString)层
EN

Stack Overflow用户
提问于 2016-07-20 21:44:32
回答 2查看 13.6K关注 0票数 0

我需要创建地图,它将使用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示例:

代码语言:javascript
复制
{
    "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
            ]
        ]
    ]
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-07-20 22:05:10

跟随文档中的示例

数据类 google.maps.Data类 一种用于显示地理空间数据的层。可以显示点、线串和多边形. 默认情况下,每个Map都有一个数据对象,因此大多数情况下不需要构造一个数据对象。例如:

代码语言:javascript
复制
var myMap = new google.maps.Map(...);
myMap.data.addGeoJson(...);
myMap.data.setStyle(...); 

概念小提琴的证明

代码片段:

代码语言:javascript
复制
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
        ]
      ]
    }
  }]
};
代码语言:javascript
复制
html,
body,
#map_canvas {
  height: 100%;
  width: 100%;
  margin: 0px;
  padding: 0px
}
代码语言:javascript
复制
<script src="https://maps.googleapis.com/maps/api/js"></script>
<div id="map_canvas"></div>

票数 5
EN

Stack Overflow用户

发布于 2016-07-20 21:51:00

您可以添加类似的GeoJSON

代码语言:javascript
复制
function loadGeoJsonString(geoString) {
  var geojson = JSON.parse(geoString);
  map.data.addGeoJson(geojson);
}

使用

代码语言:javascript
复制
map.data.setStyle({
  //Put styling here
});

您可以对添加的GeoJSON进行样式设置。因此,在加载GeoJSON时不应用样式,但可以在加载之后添加样式。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38491370

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档