2015-06-12 3 views
1

ol.Feature.getGeometry(). J получить массив всех координат. [x, y, x, y, x, y ..], которые работают для точек или полигонов. Я использую его для перемещения функций, и он работает быстро и качественно. Но .j не является «официальным» способом получения массива. Как насчет лучшего способа? Редактировать: Мне не нравится использовать getCoordinates(), он дает разные экземпляры массивов для точек или полигонов, и я не люблю использовать .j, потому что это может быть случайным в более поздних версиях. (Так я должен это исправить)лучший способ получить ol.Feature.getGeometry(). J

использование ol.js 3.5.0 и JQuery для примера кода

var x=5, y=-10; 
var l=feature.getGeometry().j,n=[],b=true; 
$.each(l,function(i,v){ 
    if(b){ 
     n.push(v+x); 
     b=false 
    }else{ 
     n.push(v+y); 
     b=true 
}}); 
feature.getGeometry().j=n; 
+0

Вы используете некоторые пользовательские OL3 строить? Что это за '.j'? –

+0

Нет, это нормальная сборка ol3. Если вы используете console.log (new ol.Feature()) или console.log (you_test_feature), вы можете увидеть в консоли все базовые функции и класс «атрибуты», одним из которых является feature.j в нем. массив всех 2D-координат в стиле [x, y, x, y ..]. Это хороший способ работы javascript без apis, потому что вы видите, что класс может сделать. – cedJ

ответ

1

Функция applyTransform() позволяет изменять это внутреннее представление геометрии.

var move = function(input, output, dimension) { 
    for (var i = 0, ii = input.length; i < ii; i += dimension) { 
    output[i] = input[i] + x; 
    output[i + 1] = input[i + 1] + y; 
    } 
}; 
geometry.applyTransform(move); 

Смотрите также ol.TransformFunction

+0

Это похоже на приятное решение для базовой идеи для перемещения функций. Я попробую. Если он работает, мне не нужен j. Я тестирую его позже, но отмечаю его как истинный ответ. Спасибо @tsauerwein :) – cedJ

+0

Если хотите, я бы хотел увидеть пример этого хода. –

+0

Код в моем ответе на самом деле «все волшебство». Но все равно здесь JsFiddle: http://jsfiddle.net/5449m7em/ – tsauerwein

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