如何在 Google 地图 api 中设置数据层特征标签的样式?

kik*_*s73 3 javascript geojson google-maps-api-3

我有这个有效的 js 代码:

var p;
p = new google.maps.Data();
p.loadGeoJson('http://mysource.example.com');
p.setStyle( function(feature){
    var icon = feature.getProperty('icon');
    var title = feature.getProperty('title');
    return  { 
        icon: icon,
        label: title
    }
});
p.setMap(map);
Run Code Online (Sandbox Code Playgroud)

代码生成此输出:

图片

如何设置标签“L1PIAZZA”的样式?

geo*_*zip 5

使用记录的属性来设置MarkerLabel 的样式:

特性

颜色类型:字符串

标签文本的颜色。默认颜色为黑色。

fontFamily类型:字符串

标签文本的字体系列(相当于 CSS font-family 属性)。

字体大小类型:字符串

标签文本的字体大小(相当于 CSS font-size 属性)。默认大小为 14px。

fontWeight类型:字符串

标签文本的字体粗细(相当于 CSS font-weight 属性)。

文本类型:字符串

要在标签中显示的文本。

p.setStyle(function(feature) {
  var icon = feature.getProperty('icon');
  var title = feature.getProperty('title');
  return {
    icon: {
      url: icon,
      labelOrigin: new google.maps.Point(15, -10)
    },
    label: {
      color: "blue",
      fontFamily: "Courier",
      fontSize: "24px",
      fontWeight: "bold",
      text: title
    }
  }
});
Run Code Online (Sandbox Code Playgroud)

概念证明小提琴

在地图上生成的标记标记的屏幕截图

代码片段:

p.setStyle(function(feature) {
  var icon = feature.getProperty('icon');
  var title = feature.getProperty('title');
  return {
    icon: {
      url: icon,
      labelOrigin: new google.maps.Point(15, -10)
    },
    label: {
      color: "blue",
      fontFamily: "Courier",
      fontSize: "24px",
      fontWeight: "bold",
      text: title
    }
  }
});
Run Code Online (Sandbox Code Playgroud)
var geocoder;
var map;

function initialize() {
  var map = new google.maps.Map(
    document.getElementById("map_canvas"), {
      center: new google.maps.LatLng(37.4419, -122.1419),
      zoom: 13,
      mapTypeId: google.maps.MapTypeId.ROADMAP
    });
  var p;
  p = new google.maps.Data();
  p.addGeoJson({
    "type": "FeatureCollection",
    "features": [{
      "type": "Feature",
      "properties": {
        "icon": "http://maps.google.com/mapfiles/ms/micons/blue.png",
        "title": "blue",
      },
      "geometry": {
        "type": "Point",
        "coordinates": [-122.1419, 37.4419]
      }
    }]
  });
  p.setStyle(function(feature) {
    var icon = feature.getProperty('icon');
    var title = feature.getProperty('title');
    return {
      icon: {
        url: icon,
        labelOrigin: new google.maps.Point(15, -10)
      },
      label: {
        color: "blue",
        fontFamily: "Courier",
        fontSize: "24px",
        fontWeight: "bold",
        text: title
      }
    }
  });
  p.setMap(map);
}
google.maps.event.addDomListener(window, "load", initialize);
Run Code Online (Sandbox Code Playgroud)
html,
body,
#map_canvas {
  height: 100%;
  width: 100%;
  margin: 0px;
  padding: 0px
}
Run Code Online (Sandbox Code Playgroud)