获取 Google Maps v3 Jquery 中的所有标记
Get all markers in Google Maps v3 Jquery
Google Maps v3 JQuery 引入了以下获取标记的方法:
$map.gmap('get', 'markers');
我正在尝试这个,但得到一个空数组。这是我正在使用的代码:
var smap = $('#smap');
$(window).load(function() {
/* Initialize Map */
smap.gmap({
center: '34.913167, -94.618089',
zoom: 5
}).bind('init', function() {
/* Add markers */
$.getJSON('static/stninfo.js', function(data) {
$.each(data, function(index, stn) {
var latlng = (stn.loc).substring(0, stn.loc.length - 4);
smap.gmap('addMarker', {
position: latlng,
bounds: false,
id: stn.stnid
}).click(function() {
smap.gmap('openInfoWindow', {
content: '<strong>' + stn.name + '</strong></br>' + latlng
}, this);
});
});
});
var imap = smap.gmap('get', 'map');
var imarkers = smap.gmap('get', 'markers');
console.log(imap);
console.log(smap.gmap('get', 'markers'));
/* Initialize clusters */
smap.gmap('set', 'MarkerClusterer', new MarkerClusterer(imap, imarkers));
});
});
根据代码,我需要这个来使用 MarkerClusterer。我在控制台中没有收到任何错误。至于 console.log
s 的结果,第一个 (imap) returns 地图对象正确。第二个(标记列表)只是 returns 一个空数组(“[]”)。
MarkerClusterer 代码似乎没有问题;我怀疑我添加的标记不正确。对这里出了什么问题有任何见解吗?
我一直以此为参考:https://code.google.com/p/jquery-ui-map/wiki/jquery_ui_map_v_3_sample_code
$.getJSON 是异步的,当 console.log(smap.gmap('get', 'markers'));执行 getJSON 可能还没有结束,所以这是你的空数组。
将其放入 getjson 代码中,您很可能会使其正常工作
$.getJSON('static/stninfo.js', function(data) {
$.each(data, function(index, stn) {
var latlng = (stn.loc).substring(0, stn.loc.length - 4);
smap.gmap('addMarker', {
position: latlng,
bounds: false,
id: stn.stnid
}).click(function() {
smap.gmap('openInfoWindow', {
content: '<strong>' + stn.name + '</strong></br>' + latlng
}, this);
});
});
console.log(smap.gmap('get', 'markers'));
});
Google Maps v3 JQuery 引入了以下获取标记的方法:
$map.gmap('get', 'markers');
我正在尝试这个,但得到一个空数组。这是我正在使用的代码:
var smap = $('#smap');
$(window).load(function() {
/* Initialize Map */
smap.gmap({
center: '34.913167, -94.618089',
zoom: 5
}).bind('init', function() {
/* Add markers */
$.getJSON('static/stninfo.js', function(data) {
$.each(data, function(index, stn) {
var latlng = (stn.loc).substring(0, stn.loc.length - 4);
smap.gmap('addMarker', {
position: latlng,
bounds: false,
id: stn.stnid
}).click(function() {
smap.gmap('openInfoWindow', {
content: '<strong>' + stn.name + '</strong></br>' + latlng
}, this);
});
});
});
var imap = smap.gmap('get', 'map');
var imarkers = smap.gmap('get', 'markers');
console.log(imap);
console.log(smap.gmap('get', 'markers'));
/* Initialize clusters */
smap.gmap('set', 'MarkerClusterer', new MarkerClusterer(imap, imarkers));
});
});
根据代码,我需要这个来使用 MarkerClusterer。我在控制台中没有收到任何错误。至于 console.log
s 的结果,第一个 (imap) returns 地图对象正确。第二个(标记列表)只是 returns 一个空数组(“[]”)。
MarkerClusterer 代码似乎没有问题;我怀疑我添加的标记不正确。对这里出了什么问题有任何见解吗?
我一直以此为参考:https://code.google.com/p/jquery-ui-map/wiki/jquery_ui_map_v_3_sample_code
$.getJSON 是异步的,当 console.log(smap.gmap('get', 'markers'));执行 getJSON 可能还没有结束,所以这是你的空数组。
将其放入 getjson 代码中,您很可能会使其正常工作
$.getJSON('static/stninfo.js', function(data) {
$.each(data, function(index, stn) {
var latlng = (stn.loc).substring(0, stn.loc.length - 4);
smap.gmap('addMarker', {
position: latlng,
bounds: false,
id: stn.stnid
}).click(function() {
smap.gmap('openInfoWindow', {
content: '<strong>' + stn.name + '</strong></br>' + latlng
}, this);
});
});
console.log(smap.gmap('get', 'markers'));
});