繁体   English   中英

有什么办法可以在Google地图的图层内添加标签或标记?

[英]Is there any way to add label or marker inside layer of a google map?

我是google map API的新手。 我需要在Google Map Datalayer中放置标签。 我需要了解是否可以编写任何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'可以使用任何图层吗?

不,您不能,按照文档说明 ,该对象必须是google.maps.Mapgoogle.maps.StreetViewPanorama对象:

地图
类型: 地图 | 街景全景
要在其上显示标记的地图。

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()]
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM