2016-07-04 1 views
1

Я рисую GeoJSON на своей карте, используя google maps api v3. С точки слоев он функционирует нормально. Но у меня есть MultiLineString Camda и центр карты на геометрии дает ошибку. Это также происходит с полигоном, но с точками работает хорошо. Есть ли другой способ централизации для MultiLineString и Polygons?Я не могу использовать feature.get Geometry() в MultiLineString

google.maps.event.addListener(cicloviasLayer, 'addfeature', function (e) { 
    console.log(e.feature.getGeometry().getType()); // MultiLineString Ok! 
    map.setCenter(e.feature.getGeometry().get()); 

    }); 

Erro:

e.feature.getGeometry(...).get is not a function 
+0

Я до сих пор есть проблемы с пониманием -Ну проблемы, извините. Ошибка говорит мне, что событие может быть членом, возвращаемым функцией event.feature.getGeometry(), но это не функция. Должно быть? Или нам нужно посмотреть на API, чтобы найти его? Не могли бы вы добавить некоторые подробности об этом? Благодарю. – Dilettant

+0

@geocodezip отправился на второй маршрут :-) +1 от меня ... – Dilettant

ответ

3

Data.MultiLineString класс не имеет метода get, он имеет getAt и getArray методы.

getAt (п: число)

Возвращаемое значение: Data.LineString

Возвращает п-го содержал Data.LineString.

Возвращенный LineString имеет getAt метод, который возвращает google.maps.LatLng объект

getAt A (N: номер)

Возвращаемое значение: LatLng

Возвращает п-й содержал LatLng.

google.maps.event.addListener(cicloviasLayer, 'addfeature', function (e) { 
    console.log(e.feature.getGeometry().getType()); // MultiLineString Ok! 
    // will center the map on the first vertex of the first LineString 
    map.setCenter(e.feature.getGeometry().getAt(0).getAt(0)); 
});