使用geoJson

时间:2016-03-14 08:54:01

标签: javascript leaflet

我有一个小册子应用程序,其中应用程序从服务器获取geoJson对象,并显示它,特别是 LineString 。我在服务器端使用的json解析器正常工作。客户端脚本也可以。

但是有些原因我想在路线上画箭头,而且在使用 L.geoJson()时我无法弄清楚如何做到这一点。

代码 L.geoJson()

   getJsonFrom(routeQueryURL, params, function(data) {
     var a = L.geoJson(data, {
       onEachFeature: bindRouteDirection,
     }).addTo(map);
   });

因为我不想在服务器端更改任何内容,所以我尝试了这个:

getJsonFrom(routeQueryURL, param, function(data) {
    $.each(data, function(index, feature) {
      var polyline = new L.Polyline(feature.geometry.coordinates, {
        color: feature.properties.color,
        opacity: 0.8
      }).addTo(routeMapLayer);

      var decorator = L.polylineDecorator(polyline, {
        patterns: [{
          offset: 25,
          repeat: 50,
          symbol: L.Symbol.arrowHead({
            pixelSize: 15,
            pathOptions: {
              stroke: true,
              color: feature.properties.color,
              fillOpacity: 0.8,
              polygon: false,
              weight: 3
            }
          })
        }]
      }).addTo(routeMapLayer);

      map.addLayer(routeMapLayer);
    });
  });

所以我从geoJson对象和其他一些数据中访问坐标数组,并直接在地图上绘制折线。问题是它将我的路线放到中东而不是匈牙利,所以它实际上是交换坐标。为什么 L.Polyline 处理不同的形式 L.geoJson()