2013-12-16 267 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