我正在使用GeoJSON加载谷歌地图,在加载地图并应用数据图层后,我想在特定点自动为用户触发点击事件。随后,他们可以在整个地图上单击以与之交互。
所以对于自动加载部分,我尝试了这样的事情:
var x = new google.maps.LatLng(myLongitude, myLatitude);
google.maps.event.trigger(map.data, 'click', WHAT_GOES_HERE?);
但我无法弄清楚该功能的最后一部分发生了什么。对应的点击功能是这样的:
map.data.addListener('click', function (event) {
...
code
...
}
事件触发,但事件当然为空。我需要(事件(填充一个功能(这就是该类型所期望的类型(,但我似乎无法弄清楚如何从长/纬度获取特征。
所以我加载了数据图层,我有我的长/纬度,但我似乎无法从长/纬度中检索特征。关于如何检索它的任何建议?
A (on(Click 看起来像这样(假设我们在那里放了一个标记(:
map.addListener('click', function (event) {
var position = {lat: event.latLng.lat(), lng: event.latLng.lng()}
//alert(JSON.stringify(position));
var marker = new google.maps.Marker({position: position, map: map});
});
所以让我们扭转这个。
假设您按下按钮,以调用布鲁塞尔或巴黎的点击
<input type="button" value="click on Brussels" onclick="clickOnMap(50.85, 4.35)">
<input type="button" value="click on Paris" onclick="clickOnMap(48.84, 2.35)">
<script>
function clickOnMap(lat, lng) {
var event = {latLng: {}};
event.latLng.lat = function() { return lat };
event.latLng.lng = function() { return lng };
google.maps.event.trigger(map, 'click', event);
}
</script>
单击该按钮将具有与单击地图相同的效果,使用相同的坐标。
当然,您可以自动调用函数clickOnMap。
你对此有帮助吗?
编辑:假设您需要更多事件属性,例如event.feature.getProperty("name"(;
尝试添加如下内容: 我不知道还有什么期望,但你可以继续添加这样的属性。
function clickOnMap(lat, lng, name) {
var event = {latLng: {}, feature: {}};
event.latLng.lat = function() { return lat };
event.latLng.lng = function() { return lng };
event.feature.getProperty = function(property) { return name; };
google.maps.event.trigger(map, 'click', event);
}