如何在Google地图上添加自定义街道名称?

时间:2011-11-10 06:46:16

标签: javascript google-maps google-maps-api-3 kml google-earth

您想在Google地图上添加自定义街道名称或其他标签吗?例如在this location上。在学习了当前(3.6)google map js API之后,你有了这些可能的选择:

KmlLayer “...通过托管在可公开访问的网络服务器上的KML,KMZ或GeoRSS文件向地图添加地理标记...”。我们可以尝试使用此最新功能使用标签添加路径。它可以在Google地球中使用。但是如果路径太短 - Google地球不会向我们显示标签。短路径的解决方法只是通过添加起点和终点几次使其变长:

<coordinates>
  55.043196,82.907145 55.043473,82.909902
  55.043196,82.907145 55.043473,82.909902
  55.043196,82.907145 55.043473,82.909902
  55.043196,82.907145 55.043473,82.909902
</coordinates>

然后我们已经在Google地球中看到了我们不错的自定义标签,但在谷歌地图中没有。最可能的原因是谷歌地球的最新功能是too latest。目前这是一种失败的方式,但可能会稍后,谷歌地图的KML渲染器将考虑该功能。

GroundOverlay 是“......地图上的矩形图像叠加层......”。一切都很简单。

创建图片:

  1. 打开您的Google地球(确保您的纬度/经度设置为墨卡托)并转到您的位置
  2. 在您的区域添加一个像素白色图像并使其透明度为33%
  3. 转到图片叠加层的属性/位置标签,然后从那里复制纬度/经度
  4. 在Google地球中制作屏幕截图并将其粘贴到您最喜欢的图形编辑器
  5. 将图像裁剪到白色透明区域的边框
  6. 添加图层,您将在其中添加自定义标签并添加它们
  7. 关闭基础图层并将结果保存为png,例如overlay.png
  8. 将生成的图片添加到您的Google地图中:

    google.maps.event.addDomListener(window, 'load', function() {
      var mapDiv  = document.getElementById('map'),
          opts    = {mapTypeId: google.maps.MapTypeId.HYBRID},
          map     = new google.maps.Map(mapDiv, opts),
          area    = new google.maps.LatLngBounds(
            new google.maps.LatLng(55.042297, 82.906337),
            new google.maps.LatLng(55.043862, 82.910473)
          ),
          overlay = new google.maps.GroundOverlay(
            'overlay.png', area, {map: map, clickable: false}
          );
    
      map.fitBounds(area);
    });
    

    Custom street name on Google Maps

    OverlayView 您可以自己尝试。

    ps:这是文章的正确格式吗?或者可能是社区维基?

1 个答案:

答案 0 :(得分:0)

我刚才创建了一个MapLabel实用程序库。虽然它没有任何旋转或文本路径功能(我很乐意看到你添加它!),它确实让你把文字放在地图上。