Google maps 使用loadGeoJson加载点数据时,如何访问lng/lat?
我用GoogleMapLoadGeoJSON加载了n个位置数据,除了数据本身不是很好外,其他一切都很正常。通常gps坐标会在同一位置放置一个标记,这会破坏标记聚类。作为一个实验,我决定给每个标记添加一点抖动,这不会对位置产生太大的影响,但允许标记聚类器来做 问题是我无法访问gps数据,也不知道如何访问,我查看了谷歌的API文档,但没有运气 在设置为标记之前,如何访问gps数据并对其进行更改 部分代码Google maps 使用loadGeoJson加载点数据时,如何访问lng/lat?,google-maps,markerclusterer,Google Maps,Markerclusterer,我用GoogleMapLoadGeoJSON加载了n个位置数据,除了数据本身不是很好外,其他一切都很正常。通常gps坐标会在同一位置放置一个标记,这会破坏标记聚类。作为一个实验,我决定给每个标记添加一点抖动,这不会对位置产生太大的影响,但允许标记聚类器来做 问题是我无法访问gps数据,也不知道如何访问,我查看了谷歌的API文档,但没有运气 在设置为标记之前,如何访问gps数据并对其进行更改 部分代码 map.data.loadGeoJson('mapdata.json, null,
map.data.loadGeoJson('mapdata.json, null, function (features) {
var bounds = new google.maps.LatLngBounds();
markers = features.map(function (feature) {
var markerJitter = feature.getGeometry().get(0); //tried to access data here
var test = markerJitter.lat; this fails too as [[scope]] is in place
var infoWin = new google.maps.InfoWindow();
var marker = new google.maps.Marker({
position: feature.getGeometry().get(0), //jitter should be present here
title: feature.getProperty("address")
});
bounds.extend(marker.position);
google.maps.event.addListener(marker, 'click', function (evt) {
closeOtherInfo();
infoWin.setContent('<div id="content">some content</div>');
infoWin.open(map, marker);
infoWindowObj[0] = infoWin;
})
return marker;
});
.... //code continues and works
map.data.loadGeoJson('mapdata.json,null,函数(功能){
var bounds=new google.maps.LatLngBounds();
标记=要素。映射(函数(要素){
var markerJitter=feature.getGeometry().get(0);//试图在此处访问数据
var test=markerJitter.lat;这也会失败,因为[[scope]]已就位
var infoWin=new google.maps.InfoWindow();
var marker=new google.maps.marker({
位置:feature.getGeometry().get(0),//此处应存在抖动
标题:feature.getProperty(“地址”)
});
扩展(标记位置);
google.maps.event.addListener(标记,'click',函数(evt){
closeOtherInfo();
infoWin.setContent('some content');
打开(地图、标记);
infoWindowObj[0]=infoWin;
})
返回标记;
});
....//代码继续运行
您正在访问包含坐标的对象(即markerJitter
)
它没有.lat属性,它有一个.lat()
函数
我不确定你的评论是什么这也失败了,因为[[scope]]已经就位了
的意思
这是一个函数。您的代码将测试设置为等于一个函数,这可能不是您想要做的
代码片段:
函数初始化(){
//创建一个简单的地图。
特征=[];
map=new google.maps.map(document.getElementById('map-canvas'){
缩放:10,
中心:{
拉脱维亚:45.495403,
液化天然气:-73.563032
}
});
google.maps.event.addListener(映射,'click',函数(){
infowidow.close();
});
//处理加载的GeoJSON数据。
//google.maps.event.addListener(map.data,'addfeature',/);
var features=map.data.addGeoJson(数据);
map.data.setMap(空);
var bounds=new google.maps.LatLngBounds();
标记=要素。映射(函数(要素){
var markerJitter=feature.getGeometry().get(0);//试图在此处访问数据
console.log(markerJitter.toUrlValue(6));
var test=markerJitter.lat;//这也会失败,因为[[scope]]已经就位
log(“markerJitter lat=“+markerJitter.lat()+”lng=“+markerJitter.lng());
var infoWin=new google.maps.InfoWindow();
var marker=new google.maps.marker({
位置:feature.getGeometry().get(0),//此处应存在抖动
标题:feature.getProperty(“地址”),
地图:地图
});
扩展(标记位置);
google.maps.event.addListener(标记,'click',函数(evt){
infoWin.setContent('some content
'+this.getTitle()+'');
打开(地图、标记);
infoWindowObj[0]=infoWin;
})
返回标记;
});
}
google.maps.event.addDomListener(窗口“加载”,初始化);
风险值数据={
“类型”:“FeatureCollection”,
“特点”:
[
{
“类型”:“功能”,
“几何学”:{
“类型”:“点”,
“坐标”:[-73.563032,45.495403]
},
“财产”:{
“prop0”:“value0”,
“地址”:“45.495403,-73.563032”
}
},
{
“类型”:“功能”,
“几何学”:{
“类型”:“点”,
“坐标”:[-73.549762,45.559673]
},
“财产”:{
“prop0”:“value0”,
“地址”:“45.559673,-73.549762”
}
}
]
};
html,
身体
#地图画布{
身高:100%;
边际:0px;
填充:0px;
宽度:100%;
}