我正在使用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
...
}
事件触发,但事件当然为空。我需要(事件)填充一个功能(这是预期的类型),但我似乎无法弄清楚如何从长/纬度获取该功能。
所以我加载了我的数据层,我有我的long / lat,但我似乎无法从long / lat中检索一个特征。关于如何检索这个的任何建议?
答案 0 :(得分:2)
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);
}