OpenLayers - как нарисовать полигон из существующих точек lonLat? - PullRequest
20 голосов
/ 23 октября 2010

В моей базе данных есть вершины долготы и широты из определенных пользователем полигонов.Мои вопросы: как мне восстановить и отобразить их на карте сейчас?Это довольно легко сделать с помощью API Карт Google, но я не могу найти документацию или примеры того, как это сделать с OpenLayers.У кого-нибудь был опыт в этом?

1 Ответ

36 голосов
/ 24 октября 2010

После долгих экспериментов я узнал, как это сделать:

var sitePoints = [];
var siteStyle = {
  // style_definition
};

var epsg4326 = new OpenLayers.Projection("EPSG:4326");
for (var i in coordinates) {
  var coord = coordinates[i];
  var point = new OpenLayers.Geometry.Point(coord.lng, coord.lat);
  // transform from WGS 1984 to Spherical Mercator
  point.transform(epsg4326, map.getProjectionObject());
  sitePoints.push(point);
}
sitePoints.push(sitePoints[0]);

var linearRing = new OpenLayers.Geometry.LinearRing(sitePoints);
var geometry = new OpenLayers.Geometry.Polygon([linearRing]);
var polygonFeature = new OpenLayers.Feature.Vector(geometry, null, siteStyle);
vectors.addFeatures([polygonFeature]);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...