Ответы пользователя по тегу OpenStreetMap
  • Kак ставить маркеры на OSM у себя на сайте?

    ghaiklor
    @ghaiklor
    NodeJS TechLead
    Вам нужно смотреть на такие вещи как OpenLayers.Marker или OpenLayers.Feature.Vector. Чтобы создать маркер с такими-то координатами, я использую вот такой код:
    addVehicle: function (layerName, coordinates, attributes) {
            attributes = this.parent.BaseFunc.extendConfigFromDefault(attributes, defaultOptions.vehicleOptions);
            var layer = this.parent.Layer.getLayerByName(layerName);
            if (this.parent.BaseFunc.checkUndefined(layer) || !layer) {
                this.parent.Console.writeError('Func: addVehicle | Layer ' + layerName + ' doesn\'t exists!');
                return false;
            }
            var feature = this.parent.Layer.getFeatureById(layerName, attributes.id);
            if (!this.parent.BaseFunc.checkUndefined(feature) || feature) {
                this.parent.Console.writeWarning('Func: addVehicle | Layer ' + layerName + ' already have feature with this ID: ' + attributes.id + '!');
                return false;
            }
            var point = new OpenLayers.Geometry.Point(coordinates.longitude, coordinates.latitude);
            point.transform(new OpenLayers.Projection(attributes.projection), new OpenLayers.Projection(this.parent.Map.getProjectionObject()));
            layer.addFeatures(new OpenLayers.Feature.Vector(point, attributes));
            return true;
        }
    

    Так же можете почитать вот эту статью. Было время, когда мне нужно было упростить такие шаблонные участки и я написал это мини-плагин.

    В документации OpenLayers есть вот такое дело. В этом направлении и нужно копать.
    Ответ написан
    1 комментарий