2016-03-14 8 views
1

У меня есть небольшое приложение для листовки, в котором приложение получает объекты geoJson с сервера и отображает его, особенно LineString. Парсер json, который я использую на стороне сервера, работает правильно. И сценарий клиентской стороны тоже был в порядке.Листовка меняет координаты при использовании geoJson

Но некоторые причины я хотел бы нарисовать стрелку на маршрутах, и я не могу понять, как это сделать при использовании 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()?

ответ

Смежные вопросы