Answer the question
In order to leave comments, you need to log in
API Yandex Map 2 geoobject.Point flies along with the map in the center. How to attach a Point to a specific location?
Here is the code:
ymaps.ready(function () {
var gObjects = [{
"type": "Feature",
"name": "",
"style": "#id1422517012444625547",
"geometry": {
"type": "LineString",
"coordinates": [
[37.58193, 55.91089],
[37.58121, 55.91116],
[37.5809, 55.91128],
[37.5807, 55.91142],
[37.58077, 55.91167],
[37.58075, 55.91185],
[37.58067, 55.9121],
[37.5805, 55.91234],
[37.58065, 55.91248],
[37.58025, 55.91258],
[37.57994, 55.91282],
[37.57965, 55.91298],
[37.57715, 55.91418],
[37.57689, 55.91442],
[37.57631, 55.91459],
[37.57428, 55.91556],
[37.572, 55.91664],
[37.57098, 55.91729],
[37.57064, 55.91748],
[37.57033, 55.91771],
[37.57006, 55.91842],
[37.56986, 55.91894],
[37.56978, 55.91904],
[37.56967, 55.91909],
[37.56951, 55.9191],
[37.56673, 55.91746],
[37.56581, 55.91698],
[37.5653, 55.91671],
[37.56483, 55.91644],
[37.56459, 55.91656]
]
}
}, {
"type": "Feature",
"name": "Офис и склад Аль-трейд",
"style": "#id1422515632652808079",
"geometry": {
"type": "LineString",
"coordinates": [
[37.56105, 55.91926],
[37.56338, 55.91905],
[37.56316, 55.91831],
[37.56377, 55.91826],
[37.56348, 55.91739],
[37.56388, 55.91735],
[37.56353, 55.91618],
[37.56027, 55.91649],
[37.56105, 55.91926]
]
}
}, {
"type": "Feature",
"name": "Внутренняя сторона МКАД",
"style": "#id1422516247783473813",
"geometry": {
"type": "LineString",
"coordinates": [
[37.58141, 55.91078],
[37.58487, 55.91036],
[37.58811, 55.90978],
[37.59008, 55.90928],
[37.59059, 55.90895],
[37.59033, 55.9087],
[37.58968, 55.90858],
[37.5882, 55.9083],
[37.5879, 55.90846],
[37.58802, 55.90846],
[37.58781, 55.90869],
[37.58923, 55.9106],
[37.5896, 55.91076],
[37.59006, 55.9108],
[37.59041, 55.91076],
[37.59077, 55.9106],
[37.59099, 55.91042],
[37.59104, 55.91022],
[37.59057, 55.90978],
[37.59, 55.90968],
[37.58931, 55.90971]
]
}
}, {
"type": "Feature",
"name": "Внешняя сторона МКАД",
"style": "#id1422517027907995963",
"geometry": {
"type": "LineString",
"coordinates": [
[37.59244, 55.90892],
[37.58965, 55.90962],
[37.58677, 55.91027],
[37.58453, 55.91063],
[37.58173, 55.91093]
]
}
}, {
"type": "Feature",
"name": "Из центра Москвы",
"style": "#id1422517318711839074",
"geometry": {
"type": "LineString",
"coordinates": [
[37.58723, 55.90274],
[37.5874, 55.90782],
[37.58789, 55.90882]
]
}
}, {
"type": "Feature",
"name": "КПП №1",
"style": "#id1422516525983358305",
"geometry": {
"type": "Polygon",
"coordinates": [
[
[37.56457, 55.91648],
[37.56463, 55.91652],
[37.56457, 55.91648]
]
]
}
},
{
"type": "Feature",
"name": "Офис и склад Аль-трейд",
"style": "twirl#yellowDotIcon",
"number": "",
"geometry": {
"type": "Point",
"coordinates":
}
}];
var qStyles = {
"id1422517012444625547": {
"strokeColor": "00339a99",
"strokeWidth": 5
},
"id1422515632652808079": {
"strokeColor": "00339a99",
"strokeWidth": 5
},
"id1422516247783473813": {
"strokeColor": "00339a99",
"strokeWidth": 5
},
"id1422517027907995963": {
"strokeColor": "00339a99",
"strokeWidth": 5
},
"id1422517318711839074": {
"strokeColor": "00339a99",
"strokeWidth": 5
},
"id1422516525983358305": {
"strokeColor": "ff0000e6",
"strokeWidth": 5,
"outline": "1",
"fill": "1",
"fillColor": "ff000099"
}
};
var map = new ymaps.Map('map-frame', {
center: [55.917650000000002, 37.562049999999999], //[55.912428,37.579655],//55.910896,37.575208
zoom: 15,
type: "yandex#satellite",
behaviors: ['scrollZoom', 'drag'],
//bounds: [ [55.899610000000003, 37.550780000000003], [55.921309999999998, 37.60228] ],
//strictBounds: true
}, {
autoFitToViewport: "always",
geoObjectStrokeOpacity: 1,
geoObjectFillOpacity: 1,
geoObjectStrokeColor: "ff0000e6",
geoObjectStrokeWidth: 5,
geoObjectFillColor: "ff000099",
geoObjectIconContentLayout: ymaps.templateLayoutFactory.createClass("$[properties.number]"),
geoObjectBalloonContentBodyLayout: ymaps.templateLayoutFactory.createClass("$[properties.name]")
} );
map.controls.add("mapTools")
// Добавление кнопки изменения масштаба
.add("zoomControl")
// Добавление списка типов карты
.add("typeSelector");
for (var H in qStyles) {
if (qStyles.hasOwnProperty(H)) {
ymaps.option.presetStorage.add("ctor#" + H, qStyles[H])
}
}
for( var o = 0; o < gObjects.length; o++ ) {
var gO = gObjects[o];
for( var C in gO.geometry.coordinates ) {
if( gO.geometry.type == 'Polygon' ) {
for( var M in gO.geometry.coordinates[C] ) {
gO.geometry.coordinates[C][M] = [ gO.geometry.coordinates[C][M][1], gO.geometry.coordinates[C][M][0] ];
}
} else {
gO.geometry.coordinates[C] = [ gO.geometry.coordinates[C][1], gO.geometry.coordinates[C][0] ];
}
}
if( gO.geometry.type == 'Point' ) {
gO.geometry = new ymaps.geometry.Point( gO.geometry.coordinates, { pixelRendering: "static" } );
gO.geometry.options.set( 'pixelRendering', 'static' );
}
var g1 = new ymaps.GeoObject({
geometry: gO.geometry,
properties: {
name: gO.name,
number: gO.number,
pixelRendering: "static"
}
}, {
pixelRendering: "static",
preset: gO.style.indexOf("#") === 0 ? "ctor" + gO.style : gO.style
} );
g1.options.set( 'pixelRendering', 'static' );
g1.geometry.events.add( 'change', function( e ) {
console.log( e );
} );
map.geoObjects.add( g1 );
gObjects[o] = g1;
}
map.setBounds( [ [55.899610000000003, 37.550780000000003], [55.921309999999998, 37.60228] ] );
});
Answer the question
In order to leave comments, you need to log in
Found an error.
I have a loop to flip the coordinates (because they are given in reverse order in the gObjects object) and the coordinates to Point are different from others in this object. It turned out that they were not set, so it flew in the center ..
Didn't find what you were looking for?
Ask your questionAsk a Question
731 491 924 answers to any question