有没有办法在谷歌地图的图层内添加标签或标记?

时间:2017-11-09 10:25:47

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

我是google map API的新手。我需要在谷歌地图数据层中放置一个标签。我需要了解是否可以编写任何javascript代码来解决这个问题?

  new google.maps.Marker({
      position: e.latLng,
      map: map,
      icon: {
        path: resultPath,
        fillColor: resultColor,
        fillOpacity: .2,
        strokeColor: 'white',
        strokeWeight: .5,
        scale: 10
      }
    });

从上面的代码而不是'map:map'我们可以使用任何图层吗?

2 个答案:

答案 0 :(得分:0)

不,你不能,每个the documentation必须是google.maps.Mapgoogle.maps.StreetViewPanorama个对象:

  

<强>地图
  输入:Map | StreetViewPanorama
  要显示标记的地图。

答案 1 :(得分:0)

google.maps.Data图层不会接收常见的叠加对象(标记,折线,多边形,圆形,矩形)。它显示google.maps.Data.Feature个对象或GeoJSON有效文字。

例如,您可以通过执行

向数据层添加标记
var geoJsonFeature = {
    type:'Feature',
    geometry:{
      type:'Point',
      coordinates:[e.latLng.lng(), e.latLng.lat()]
    }
}

google.maps.data.addGeoJson(geoJsonFeature);

关于标记的样式,您可以将数据层样式设置为

google.maps.data.setStyle(function(Feature) {

   return {
      icon: {
        path: Feature.getProperty('resultPath'),
        fillColor: Feature.getProperty('resultColor'),
        fillOpacity: .2,
        strokeColor: 'white',
        strokeWeight: .5,
        scale: 10
     }
   };        

});

因此,对于您添加的每个数据层google.maps.data.Feature,如果您希望标记具有不同的样式,则应事先将其路径和fillColor设置为

var geoJsonFeature = {
    type:'Feature',
    properties: {
       path: resultPath,
       fillColor: resultColor
    },
    geometry:{
      type:'Point',
      coordinates:[e.latLng.lng(), e.latLng.lat()]
    }
}