【问题标题】:OpenLayers - displaying the markers on the mapOpenLayers - 在地图上显示标记
【发布时间】:2013-12-16 02:35:36
【问题描述】:

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

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>

【问题讨论】:

    标签: openlayers markers


    【解决方案1】:

    第一个问题是通过 AJAX 请求读取的变量 venues 无法从 &lt;body&gt; 内的 OpenLayers 块访问。如果要将每个数据点添加到地图中,则需要将添加标记的代码移动到 $.each 回调的正文中。 另一个问题是,顾名思义,OpenLayers.LonLat 的构造函数将 latitude 作为第一个参数,你以错误的顺序传递 lat 和 lon,导致标记出现在南极洲的某个地方。

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

    【讨论】:

      猜你喜欢
      • 2017-11-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-01-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多