Google maps api 3 在google maps api中设置标记标签
我在为谷歌地图api找到标签时遇到了一些问题。我调用我的geojson并加载我的地图,如下所示:Google maps api 3 在google maps api中设置标记标签,google-maps-api-3,label,geojson,Google Maps Api 3,Label,Geojson,我在为谷歌地图api找到标签时遇到了一些问题。我调用我的geojson并加载我的地图,如下所示: var map; function init() { map = new google.maps.Map(document.getElementById('map'), { zoom: 11, center: {lat: 43.2, lng: -84.65}, mapTypeId: google.maps.MapTypeId.ROADMAP }); map.da
var map;
function init() {
map = new google.maps.Map(document.getElementById('map'), {
zoom: 11,
center: {lat: 43.2, lng: -84.65},
mapTypeId: google.maps.MapTypeId.ROADMAP
});
map.data.loadGeoJson(
'Maps/Newark.geojson');
map.data.setStyle({
icon: {
path: google.maps.SymbolPath.CIRCLE,
scale: 4,
fillColor: 'blue',
fillOpacity: .5,
strokeColor: 'blue',
strokeWeight: 1
}
})
}
这是示例geojson数据:
{
"type": "FeatureCollection",
"features": [
{
"type": "Feature",
"geometry": {
"type": "Point",
"coordinates": [ -84.69729,43.24808 ]
},
"properties": {
"Name":"Name 1",
"Address":"My Address",
"City":"town",
"State":"ST",
"Zip":12345,
"Group":"Newark"
}
},
{
"type": "Feature",
"geometry": {
"type": "Point",
"coordinates": [ -84.58872,43.23395 ]
},
"properties": {
"Name":"Name 2",
"Address":"another address",
"City":"town",
"State":"ST",
"Zip": 12345,
"Group":"Newark"
}
}
]
}
我想做的是通过标记将then name属性显示为标签
我试过了,但没能成功。修改自
变化:
map.data.setMap(null)代码>(我假设您仍然希望显示标记
函数初始化(){
变量映射选项={
缩放:14,
中心:新google.maps.LatLng(43.23395,-84.58872),
mapTypeId:google.maps.mapTypeId.ROADMAP
};
var map=new google.maps.map(document.getElementById('map_canvas'),mapOptions);
var bounds=new google.maps.LatLngBounds();
map.data.addListener('addfeature',function(evt){
if(evt.feature.getGeometry().getType()=“点”){
var coord=evt.feature.getGeometry().get();
扩展(坐标);
映射边界(bounds);
var labelText=evt.feature.getProperty(“名称”);
var labelDiv=document.createElement(“div”);
labelDiv.innerHTML=labelText;
labelDiv.setAttribute(“id”、“标签”);
变量myOptions={
内容:labelDiv,
箱式:{
边界:“无”,
textAlign:“居中”,
宽度:“50px”
},
是的,
pixelOffset:new google.maps.Size(-25,0),
职位:coord,
closeBoxURL:“”,
伊希登:错,
窗格:“地图窗格”,
enableEventPropagation:true
};
var ibLabel=新信息框(myOptions);
ibLabel.open(map);
}
});
map.data.addGeoJson(geoJson);
}
google.maps.event.addDomListener(窗口“加载”,初始化);
var geoJson={
“类型”:“FeatureCollection”,
“特点”:[{
“类型”:“功能”,
“几何学”:{
“类型”:“点”,
“坐标”:[-84.69729,43.24808]
},
“财产”:{
“名称”:“名称1”,
“地址”:“我的地址”,
“城市”:“城镇”,
“州”:“圣”,
“Zip”:12345,
“组”:“纽瓦克”
}
},
{
“类型”:“功能”,
“几何学”:{
“类型”:“点”,
“坐标”:[-84.58872,43.23395]
},
“财产”:{
“名称”:“名称2”,
“地址”:“另一个地址”,
“城市”:“城镇”,
“州”:“圣”,
“Zip”:12345,
“组”:“纽瓦克”
}
}
]
};
html,
身体,
#地图画布{
身高:100%;
宽度:100%;
边际:0px;
填充:0px;
背景色:白色;
}
我遇到了几个错误:未捕获引用错误:google未定义在(索引):74(匿名)@(索引):74 infobox.js:128未捕获引用错误:google未定义在infobox.js:128,我还需要知道如何使用路径(Maps/myfile.geojson)加载外部goejson文件这些都是不同的问题。1.调用loadGeoJson
将加载外部文件(如果它最初工作),addGeoJson
让我加载您提供的数据并创建一个工作示例。2.google未定义
是因为异步加载API,但在加载InfoBox
库之前,它是同步加载的。您能想出如何显示geoJson标记的标签吗?是的,我使用了下面的答案。