-1
我正在使用Fusion Table和Google Map API,並想知道在放置標記時是否可以自動觸發事件。觸發標記點擊
目前,我可以點擊地圖,我得到一個自定義的infowindow,但我想做同樣的事情,但經過地理編碼和放置一個標記...我想這會自動發生。
這裏是我到目前爲止的代碼:
var FusionTableID = '<?php echo get_theme_mod('fusion_id')?>';
var map = null;
var geocoder = null;
var marker = null;
function initialize() {
geocoder = new google.maps.Geocoder();
var local = new google.maps.LatLng(<?php echo get_theme_mod('lat-long')?>);
map = new google.maps.Map(document.getElementById('map-canvas'), {
center: local,
zoom: <?php echo get_theme_mod('zoom')?>
});
// forces a refresh to from Fusion Tables
//var and=' geometry does not contain "'+new Date().getTime()+'"';
var layer = new google.maps.FusionTablesLayer({
//suppressInfoWindows: true,
query: {
select: "col2\x3e\x3e0",
from: FusionTableID,
where: ""
},
options: {
styleId: 2,
templateId: 2
},
map: map
});
layer.setMap(map);
google.maps.event.addListener(layer, "click", function(e) {
var point = e.latLng.toUrlValue(6);
var latlngStr = point.split(',', 2);
var lat = parseFloat(latlngStr[0]);
var lng = parseFloat(latlngStr[1]);
var latlng = new google.maps.LatLng(lat, lng);
if (marker && marker.setMap) marker.setMap(null);
marker = new google.maps.Marker({
position: latlng,
map: map
});
console.log(e.row['objectid'].value);
var tname = e.row['name'].value; // name
var targetDist = e.row['description'].value; // description
// poplulate the infowindow
e.infoWindowHtml = "<div class=\"grid-100\"><h2>"+tname+"</h2>"+targetDist+"<hr></div>";
});
}
function showAddress() {
var address = document.getElementById('address').value;
geocoder.geocode({ 'address': address}, function(results, status) {
if (status == google.maps.GeocoderStatus.OK) {
if (marker && marker.setMap) marker.setMap(null);
marker = new google.maps.Marker({
map: map,
position: results[0].geometry.location
});
if (results[0].geometry.viewport)
map.fitBounds(results[0].geometry.viewport);
// THIS DOESN'T WORK ****
new google.maps.event.trigger(marker, 'click');
} else {
alert("Geocode was not successful for the following reason: " + status);
}
});
}
是否必須重新構建信息窗口howAddress? – Ian
您是否在尋找[this](http://www.geocodezip.com/v3_collection-map2e_FT.html)?在FusionTablesLayer上「觸發」點擊是不太可能的(你可以,但你基本上需要在click事件中複製信息,這很痛苦),你可以查詢表格,在標記上創建你自己的infowindow雖然。 – geocodezip
是的,這就是我所追求的,基本上這就是我在代碼的第一次剪切時所做的,但是我遇到了一個問題。當我查詢Fusion表建立信息窗口時,它會返回錯誤的信息(沒有選中你點擊的多邊形)。去e.infoWindowHtml路線糾正了這一點。幾乎就像它是一個多邊形排序的東西, – Ian