【发布时间】:2017-04-29 05:52:04
【问题描述】:
我必须在 Google 地图中绘制标记,使用这样的 geojson 文件:
{"type": "FeatureCollection", "features": [{"geometry": {"type": "Point",
"coordinates": [-77.76242552657358, -10.749107039737899]}, "type":
"Feature", "properties": {"icon": "chart_red.png"}}, {"geometry": {"type":
"Point", "coordinates": [-77.76242552657358, -10.749107039737899]}, "type":
"Feature", "properties": {"icon": "chart_red.png"}}, {"geometry": {"type":
"Point", "coordinates": [-77.7623641788643, -10.7500605616405]}, "type":
"Feature", "properties": {"icon": "chart_green.png"}}, {"geometry": {"type":
"Point", "coordinates": [-77.77211472346339, -10.728081474512]}, "type":
"Feature", "properties": {"icon": "chart_green.png"}}, {"geometry": {"type":
"Point", "coordinates": [-77.7614956126977, -10.750647917225699]}, "type":
"Feature", "properties": {"icon": "chart_green.png"}}, {"geometry": {"type":
"Point", "coordinates": [-77.76185649510131, -10.7516817240557]}, "type":
"Feature", "properties": {"icon": "chart_red.png"}}, {"geometry": {"type":
"Point", "coordinates": [-77.76185649510131, -10.7516817240557]}, "type":
"Feature", "properties": {"icon": "chart_red.png"}}, {"geometry": {"type":
"Point", "coordinates": [-77.76242552657358, -10.749107039737899]}, "type":
"Feature", "properties": {"icon": "chart_red.png"}}, {"geometry": {"type":
"Point", "coordinates": [-77.7469388021172, -10.7729040573081]}, "type":
"Feature", "properties": {"icon": "chart_green.png"}}]}
其中每个标记都由具有点几何的要素表示,并具有一个名为“图标”的属性,该属性指向同一域中的标记图像。 使用以下 javascript 代码,我可以绘制标记,但它们都有默认的红色标记图像。
function initMap() {
var map = new google.maps.Map(document.getElementById('map'), {
zoom: 3,
center: {lat: -12, lng: -77},
mapTypeId: google.maps.MapTypeId.TERRAIN
});
var histPlacesCoordinates = map.data.loadGeoJson('hist1.geojson');
for (var i = 0, length = histPlacesCoordinates.features.length; i < length; i++) {
var data = histPlacesCoordinates.features[i],
latLng = new google.maps.LatLng(data.geometry.coordinates[1], data.geometry.coordinates[0]);
var histPlaces = new google.maps.Marker();
histPlaces.setStyle({
position: latLng,
map: map,
icon: data.feature.getProperty("icon")
});
}
}
要使用 geojson 图标属性中指定的图标绘制每个标记,我需要纠正什么?
【问题讨论】:
-
应该是
icon: data.properties.icon而不是icon: data.feature.getProperty("icon")
标签: javascript google-maps google-maps-api-3