1

我的头衔可能让我听起来像个白痴。我只是不知道如何命名我想在这里做的事情。我从我的数据库中以 Json 格式获取个人数据的位置。与使用标记聚类器 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);
            });
        });
4

1 回答 1

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);  
于 2013-02-12T22:13:29.387 回答