2014-11-25 3 views
1

Я столкнулся с проблемой, что мои GeoJSON возвращают координаты в широтном/долготном порядке, но OpenLayers хочет, чтобы они находились в обратном порядке: долгота/широта. И я не могу получить их другим способом от сервера. Можно ли отменить координаты с помощью Ol3, как я нашел кое-что о старом ОЛ как этотOpenLayers 3 Определение порядка оси

formatOptions: { xy: false } 

ли что-то подобное доступно в Ol3?

ответ

1

Короткий ответ: нет. OL3 принимает только XY. Если у вас есть возможность отменить его в источнике GeoJSON, сделайте это.

В документации ol3 у вас должна быть возможность сделать настраиваемое преобразование, используя метод «applyTransform» для каждой из ваших геометрий в ваших featrures, но этот метод явно удален.

Ниже приведено предложение о том, как вы можете изменить свои координаты.

$.ajax({ 
     url: "http://www.myjsonsource.com", 
     timeout: 1000, 
     success: function(response) { 
      var layerJSONString = $.parseJSON(response); 
      var size=layerJSONString.features.length; 
      for (i = 0; i < size; i++){ 
       layerJSONString.features[i].geometry.coordinates.reverse(); 
      }; 
      vectorSource.addFeatures(vectorSource.readFeatures(response)); 

     }, 
     error: loadError   
}); 
+0

Для меня это не поменять координаты в vectorSource, так что я отменил их в ответ, и только после этого дополнительных функций в vectorSource – Anuket

+0

@Anuket, если у вас есть привилегии редактирования, могли бы вы изменить код выше код это работает для вас и принимает ответ. Это сделает его более полезным для других, которые придут в ту же ситуацию. –