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

는 OpenLayers 내부 <body> 블록에서 AJAX 요청을 통해 판독되는 변수 venues 액세스 할 수없는 점이다. 지도에 각 데이터 요소를 추가하려면 마커 추가 코드를 $.each 콜백 본문으로 이동해야합니다. 또 다른 문제는 그 이름에서 알 수 있듯이 OpenLayers.LonLat의 생성자가 첫 번째 매개 변수로 위도를 사용하면 위도와 경도가 잘못된 순서로 전달되어 마커가 남극 대륙의 어딘가에 표시됩니다. http://jsfiddle.net/s9jGt/1/

+0

덕분에 많은 :

다음은이 두 가지 문제를 고정하는 JSFiddle입니다! 이제지도에 마커가 있습니다. 그러나 마커는 하나 뿐이지 만 다른 것들은 볼 수 없습니다. – bucek