我的头衔可能让我听起来像个白痴。 我只是不知道如何命名我想在这里做什么。 我以Json格式从数据库中获取个人数据的位置。 比使用标记clusterer jQuery插件,这些人在地图上指针。 但我真的很喜欢他们在这个网站上所做的。 http://www.fetalhope.org/patients-families/treatment?cid=168&x=35&y=14
如果您可以帮我构建相同的设置,我将不胜感激。 我也愿意付钱,但失业的人不会期待太多。 我只是想学习。
{
"users": [
{
"name": "John Doe",
"latitude": "22.3430194444444",
"longitude": "114.110386111111"
},
{
"name": "John Doe",
"latitude": "48.4048403957642",
"longitude": "2.68452644348145"
}
]
}
$(function CheckinMap() {
$.when($.ajax({
type: "GET",
dataType: "json",
url: "content/sewerage/index.cs.asp?Process=ViewMap"
})).done( function initialize(data) {
var MapData = data;
var center = new google.maps.LatLng(41.00527, 28.97696);
var map = new google.maps.Map(document.getElementById('checkinmap'), {
zoom: 6,
center: center,
mapTypeId: google.maps.MapTypeId.ROADMAP,
maxZoom: 14
});
var markers = [];
for (var i = 0; i < MapData.users.length; i++) {
var location = MapData.users[i];
var latLng = new google.maps.LatLng(location.NIDLatitude,
location.NIDLongitude);
var marker = new google.maps.Marker({
position: latLng
});
markers.push(marker);
}
var markerCluster = new MarkerClusterer(map, markers);
});
});
答案 0 :(得分:0)
根据您正在使用的API的版本(示例适用于V3)谷歌地图,你可以做的是使用标记上的监听器,当它被点击时,你可以得到一个值,比如一个id,那个识别要在列表中聚焦的元素。
因此,假设您有标记,则可以对其进行扩展并添加id
。
var markerItem = new google.maps.Marker();
markerItem.metadata = {id: 1};
然后添加事件监听器:
google.maps.event.addListener(markerItem, 'click', function () {
var targetId = markerItem.get("id");
//do something with the target id like scrolling the desired point of the list
});
在活动中,您可以将地图置于点击标记的纬度/长度的中心,创建一个新的infoWindow
并显示它等等:
var infoWindowItem = new google.maps.InfoWindow({content: 'Some content here!'});
infoWindowItem.open(map, markerItem);