列出数据和单击数据时移动的地图

时间:2013-02-12 21:35:59

标签: javascript jquery google-maps

我的头衔可能让我听起来像个白痴。 我只是不知道如何命名我想在这里做什么。 我以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);
            });
        });

1 个答案:

答案 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);