2013-12-16 53 views
0

我在地图上看不到标记。在表格中,我可以看到所有点,但在地图上它不显示。 我想这个问题是在这里:OpenLayers - 在地图上显示标记

markers.addMarker(new OpenLayers.Marker(new OpenLayers.LonLat(venues.location.lat,venues.location.lng),icon)); 
markers.addMarker(new OpenLayers.Marker(new OpenLayers.LonLat(venues.location.lat,venues.location.lng),icon.clone())); 

,当我把一些协调,而不是venues.location.lat,venues.location.lng它显示标记。

...但不知道如何解决它。

<script type="text/javascript"> 
$.getJSON('https://api.foursquare.com/v2/venues/search?ll=32.7153,-117.1564&limit=14&radius=1000&client_id=PKAHBB1OAX0B000CG5UUYO4BXV0LWQWKFB51EK3XVNFJ2ULS&client_secret=RDPX01C01RHCYASZIKVH5XXMPVFIPLFHFP1D53UR4GUWQD50&v=20120101', 
function(data) { 
console.log(data); 
    $.each(data.response.venues, function(i,venues){ 
     content = '<p>Name: ' + venues.name + 
      ' Address: ' + venues.location.address + 
      ' Lat/long: ' + venues.location.lat + ', ' + venues.location.lng + '</p>'; 
      $(content).appendTo("#venues"); 
     $('#table').append("<tr><td>" + venues.name + "</td><td>" + venues.location.address + "</td><td>" +venues.location.lat + "</td><td>" + venues.location.lng + "</td></tr >"); 

    }); 
}); 
</script> 

回答

1

首先的问题是,其经由一个AJAX请求读变量venues不可访问从的OpenLayers块内<body>。如果要将每个数据点添加到地图,则需要将添加标记的代码移动到$.each回调的主体中。 另一个问题是,顾名思义,OpenLayers.LonLat的构造函数将纬度作为第一个参数,因此您将lat和lon以错误的顺序传递,导致标记出现在南极洲的某处。

下面是解决这两个问题的jsfiddle:http://jsfiddle.net/s9jGt/1/

+0

非常感谢!现在地图上有标记。但是只有一个标记,我看不到其他人。 – bucek