RError.com

RError.com Logo RError.com Logo

RError.com Navigation

  • 主页

Mobile menu

Close
  • 主页
  • 系统&网络
    • 热门问题
    • 最新问题
    • 标签
  • Ubuntu
    • 热门问题
    • 最新问题
    • 标签
  • 帮助
主页 / 问题

问题[yandex-maps-api]

Martin Hope
user644063
Asked: 2024-11-11 17:17:50 +0000 UTC

如何从地图中删除所有标记而不删除脚本中的多边形?

  • 5

地理对象从 geojson 文件加载到地图上,我需要两个选项来使用多边形和标签打开地图,并且仅使用多边形,无法更改 geojson 文件,我需要制作没有标签的第二个版本的脚本。

 ymaps.ready(init);
 function init() {
var myMap = new ymaps.Map('map', {
        center: [30.448166334957177, 59.9220776628873],
        zoom: 15,
        controls: ['searchControl']
    }),

searchControl = myMap.controls.get('searchControl');
searchControl.options.set({noPlacemark: true, placeholderContent: 'Введите адрес'});

function onZonesLoad(json) {
    // Добавляем зоны на карту.
    var deliveryZones = ymaps.geoQuery(json).addToMap(myMap);
    // Задаём цвет и контент балунов полигонов.
    deliveryZones.each(function (obj) {
        obj.options.set({
            fillColor: obj.properties.get('fill'),
            fillOpacity: obj.properties.get('fill-opacity'),
            strokeColor: obj.properties.get('stroke'),
            strokeWidth: obj.properties.get('stroke-width'),
            strokeOpacity: obj.properties.get('stroke-opacity')
        });
         obj.properties.set('balloonContent', obj.properties.get('description'));
        });
           }

$.ajax({
    url: 'lib/cart.geojson',
    dataType: 'json',
    success: onZonesLoad
   });
  }

购物车.geojson

 {
"type": "FeatureCollection",
"metadata": {
    "name": "geoObjects",
    "creator": "Yandex Map Constructor"
},
"features": [
    {
        "type": "Feature",
        "id": 0,
        "geometry": {
            "type": "Polygon",
            "coordinates": [
                [
                    [
                        30.442541174676739,
                        59.92002251063883
                    ],
                    [
                        30.445974402215794,
                        59.91920375455527
                    ],
                    [
                        30.446210436609108,
                        59.91941921864753
                    ],
                    [
                        30.44902139165672,
                        59.920097921364028
                    ],
                    [
                        30.44887118795188,
                        59.92039956254539
                    ],
                    [
                        30.449579291131824,
                        59.92114288084794
                    ],
                    [
                        30.445824198510978,
                        59.92209085678325
                    ],
                    [
                        30.44610314824848,
                        59.92245172682361
                    ],
                    [
                        30.44562035062585,
                        59.922562141511509
                    ],
                    [
                        30.445228748109668,
                        59.92230899511611
                    ],
                    [
                        30.443764261987544,
                        59.92293108545654
                    ],
                    [
                        30.441897444513164,
                        59.92162764466863
                    ],
                    [
                        30.442541174676739,
                        59.92002251063883
                    ]
                ]
            ]
        },
        "properties": {
            "description": "1:1:1:1:1:1:0:0:0:0:0:0:0:0:0",
            "fill": "#1bad03",
            "fill-opacity": 0.1,
            "stroke": "#1bad03",
            "stroke-width": "2",
            "stroke-opacity": 0.9
        }
    },      
    {
        "type": "Feature",
        "id": 5,
        "geometry": {
            "type": "Point",
            "coordinates": [
                30.444435038298836,
                59.92078156674039
            ]
        },
        "properties": {
            "description": "1:1:1:1:1:1:0:0:0:0:0:0:0:0:0",
            "iconCaption": "Адрес",
            "iconContent": "5"
        },
        "options": {
            "preset": "islands#darkGreenCircleIcon"
        }
    }
]
}
yandex-maps-api
  • 1 个回答
  • 36 Views
Martin Hope
user644063
Asked: 2024-10-30 20:52:22 +0000 UTC

将属性标签属性从 geojson 文件传递​​到 js 中的选项

  • 5

需要通过geoObjects.geojson文件更改标签的颜色并自动更新html页面。

  ymaps.ready(function () {

var map = new ymaps.Map('map', {
        center: [30.448166334957177, 59.9220776628873],
        zoom: 15,
        controls: ['zoomControl']
    }),
    objectManager = new ymaps.ObjectManager();
map.controls.get('zoomControl').options.set({size: 'small'});
// Загружаем GeoJSON файл, экспортированный из Конструктора карт.
$.getJSON('geoObjects.geojson')
    .done(function (geoJson) {
        geoJson.features.forEach(function (obj) {
            // Задаём контент балуна.
            obj.properties.balloonContent = obj.properties.description;
            // Задаём пресет для меток с полем iconCaption.
            if (obj.properties.iconCaption) {
                obj.options = {
                    preset: "islands#darkgreenCircleIcon"
                }
            }
        });
        // Добавляем описание объектов в формате JSON в менеджер объектов.
        objectManager.add(geoJson);
        // Добавляем объекты на карту.
        map.geoObjects.add(objectManager);
    }); 

   {"type":"FeatureCollection","metadata":{"name":"geoObjects","creator":"Yandex Map Constructor"},"features":[{"type":"Feature","id":5,"geometry":{"type":"Point","coordinates":[30.444435038298835,59.92078156674039]},"properties":{"description":"1:1:1:1:1:1:0:0:0:0:0:0:0:0:0","iconCaption":"Бадаева, 7/2","iconContent":"5","marker-color":"#ed4543"}}]}
yandex-maps-api
  • 1 个回答
  • 45 Views
Martin Hope
aliver
Asked: 2024-10-18 22:41:18 +0000 UTC

单击使用聚类的 Yandex Map v3 标记时如何运行函数?

  • 5

请告诉我。情况:有一张带点的地图。有一个 showInfo 函数,可以移动地图的“视线”、更改缩放以及信息块中活动点的信息。

我希望当点击某个点时触发这个函数。我无法想象该函数该放在哪里,因为我不理解(并且不再想理解)Yandex 地图 api 是如何工作的。

我只对善良的人抱有希望,因为我太累了,我的大脑已经停止运转了

initMap();

ymaps3.readyasync function initMap() { //当主 API 模块的所有组件加载完毕后,promise将被解析 wait ymaps3.ready;

const {YMap, YMapDefaultSchemeLayer, YMapDefaultFeaturesLayer, YMapMarker, YMapControls, YMapLayer, YMapFeatureDataSource} = ymaps3;

const {YMapZoomControl} = await ymaps3.import('@yandex/[email protected]');

// Добавляем кластеризатор
const {YMapClusterer, clusterByGrid} = await ymaps3.import('@yandex/[email protected]');

// Иницилизируем карту
const map = new YMap(
    // Передаём ссылку на HTMLElement контейнера
    document.getElementById('map'),

    // Передаём параметры инициализации карты
    {
        location: {
            // Координаты центра карты
            center: [37.588144, 55.733842],

            // Уровень масштабирования
            zoom: 10
        }
    }
);

// Добавляем слой для отображения схематической карты
map.addChild(new YMapDefaultSchemeLayer({ customization: mapCustomizationJSON }));

// Добавляем к карте ресурс
map.addChild(new YMapFeatureDataSource({id:'my-source'}));
// Добавляем ресурс на карту
map.addChild(new YMapLayer({source: 'my-source', type: 'markers', zIndex:1800}));

// Пин
const contentPin = document.createElement('div');
contentPin.innerHTML = '<img style="width:20px;" src="https://www.freepnglogos.com/uploads/pin-png/pin-transparent-png-pictures-icons-and-png-backgrounds-36.png" />';

// Функция создания маркера (или че это)
function marker(feature) {
    const yMapMarker = new ymaps3.YMapMarker(
        {
            coordinates: feature.geometry.coordinates,
            source: 'my-source'
        },
        contentPin.cloneNode(true)
    );

    // yMapMarker.events.add('click', () => {
    //     showInfo(feature);
    // });

    return yMapMarker;
}

const cluster = (coordinates, features) =>
new ymaps3.YMapMarker(
    {
        coordinates,
        source: 'my-source'
    },
    circle(features.length).cloneNode(true)
);

function circle(count) {
    const circle = document.createElement('div');
    circle.classList.add('circle');
    circle.innerHTML = `
    <div class="circle-content"><span class="circle-text">${count}</span></div>`;
    return circle;
}

const points = pointsData.map((point, i) => ({
    type: 'Feature',
    id: i,
    geometry: {coordinates: [point.acf_fields.coordinates.y, point.acf_fields.coordinates.x]},
    properties: {
        name: point.acf_fields.point_name,
        // другие свойства
    }
}))

const clusterer = new YMapClusterer({
    method: clusterByGrid({gridSize: 64}),
    features: points,
    marker,
    cluster
});

map.addChild(clusterer);

//   Пытаюсь добавить кнопку Зума
map.addChild(
    // Using YMapControls you can change the position of the control
    new YMapControls({position: 'right'})
    // Add the zoom control to the map
    .addChild(new YMapZoomControl({}))
);

map.addChild(new YMapDefaultFeaturesLayer());

// Функция отображения информации
function showInfo(feature) {
    const infoElement = document.getElementById('point-info-container');
    
    // Вставляем в элемент inf-block данные, которые мы получим из переменной point
    document.getElementById('point-info__name').innerText = 'Info';
    document.getElementById('point-info__address').innerText = 'text';
    infoElement.style.display = 'block';

    map.update({
        location: {
            center: feature.geometry.coordinates,
            zoom: 14,
            duration: 1000,
        }
    });
    
}

Ps 据我了解,这可以通过标记(功能)来完成。我试着这样做

function marker(feature) {
        const yMapMarker = new ymaps3.YMapMarker(
            {
                coordinates: feature.geometry.coordinates,
                source: 'my-source'
            },
            contentPin.cloneNode(true)
        );

        yMapMarker.events.add('click', () => {
            showInfo(feature);
        });

        return yMapMarker;
    }

但我得到了一个错误。

test:55 Uncaught (in promise) TypeError: Cannot read properties of undefined (reading 'add')
    at Object.marker (test:55:27)
    at c._getEntity (clusterer.js:1:1093)
    at clusterer.js:1:1228
    at Array.forEach (<anonymous>)
    at c._getVisibleEntities (clusterer.js:1:1202)
    at c._render (clusterer.js:1:1916)
    at c._onAttach (clusterer.js:1:2319)
    at c.AEC__implAttach (main.js:1:58810)
    at c.C57__implAttachTo (main.js:1:58391)
    at d._addDirectChild (main.js:1:61583)
yandex-maps-api
  • 1 个回答
  • 60 Views
Martin Hope
Yaroslav Sveshnikov
Asked: 2024-07-21 22:38:12 +0000 UTC

获取地图上商业/文化场所的信息

  • 5

地图 API 中是否有方法可以获取地图上现有/交互式对象的信息?这些是企业和文化物品。它们是交互式的,但如果您订阅地图点击map.events.add('click'),那么当您单击这些标记时,单击事件不会触发。距此标记一毫米 - 它有效。我以为我可以使用收到的坐标找到一家企业,至少通过地理编码,但我仍然不明白应该使用哪个事件。 Google 地图有一个方便的 Places API,其中所有有关单击对象的信息都会立即给出,这些信息由提供商提供,但我在 Yandex 中没有找到任何类似的信息。

yandex-maps-api
  • 1 个回答
  • 14 Views
Martin Hope
DmitryBoyko
Asked: 2024-06-26 16:35:38 +0000 UTC

Yandex 定位器错误 api_key 无效

  • 5

我已经为 Yandex Latitude 请求创建了一个有效的 API。我使用我为其创建了密钥的站点的 IP 地址。检查 XML 的有效性。我正在向定位器提出请求。

在此输入图像描述

curl -X POST "http://api.lbs.yandex.net/geolocation" -d "xml=<ya_lbs_request><common><version>1.0</version><api_key>ТУТМОЙАПИКЛЮЧ==</api_key></common><gsm_cells><cell><countrycode>250</countrycode><operatorid>2</operatorid><cellid>197403650</cellid><lac>9900</lac><signal_strength>-80</signal_strength><age>1000</age></cell></gsm_cells><ip><address_v4>ТУТМОЙИПАДРЕС</address_v4></ip></ya_lbs_request>"

我收到来自谷歌纵横的错误

<?xml version="1.0" encoding="utf-8"?>
<error code="8">invalid api_key</error>

请告诉我有什么问题吗?

yandex-maps-api
  • 1 个回答
  • 20 Views

Sidebar

Stats

  • 问题 10021
  • Answers 30001
  • 最佳答案 8000
  • 用户 6900
  • 常问
  • 回答
  • Marko Smith

    我看不懂措辞

    • 1 个回答
  • Marko Smith

    请求的模块“del”不提供名为“default”的导出

    • 3 个回答
  • Marko Smith

    "!+tab" 在 HTML 的 vs 代码中不起作用

    • 5 个回答
  • Marko Smith

    我正在尝试解决“猜词”的问题。Python

    • 2 个回答
  • Marko Smith

    可以使用哪些命令将当前指针移动到指定的提交而不更改工作目录中的文件?

    • 1 个回答
  • Marko Smith

    Python解析野莓

    • 1 个回答
  • Marko Smith

    问题:“警告:检查最新版本的 pip 时出错。”

    • 2 个回答
  • Marko Smith

    帮助编写一个用值填充变量的循环。解决这个问题

    • 2 个回答
  • Marko Smith

    尽管依赖数组为空,但在渲染上调用了 2 次 useEffect

    • 2 个回答
  • Marko Smith

    数据不通过 Telegram.WebApp.sendData 发送

    • 1 个回答
  • Martin Hope
    Alexandr_TT 2020年新年大赛! 2020-12-20 18:20:21 +0000 UTC
  • Martin Hope
    Alexandr_TT 圣诞树动画 2020-12-23 00:38:08 +0000 UTC
  • Martin Hope
    Air 究竟是什么标识了网站访问者? 2020-11-03 15:49:20 +0000 UTC
  • Martin Hope
    Qwertiy 号码显示 9223372036854775807 2020-07-11 18:16:49 +0000 UTC
  • Martin Hope
    user216109 如何为黑客设下陷阱,或充分击退攻击? 2020-05-10 02:22:52 +0000 UTC
  • Martin Hope
    Qwertiy 并变成3个无穷大 2020-11-06 07:15:57 +0000 UTC
  • Martin Hope
    koks_rs 什么是样板代码? 2020-10-27 15:43:19 +0000 UTC
  • Martin Hope
    Sirop4ik 向 git 提交发布的正确方法是什么? 2020-10-05 00:02:00 +0000 UTC
  • Martin Hope
    faoxis 为什么在这么多示例中函数都称为 foo? 2020-08-15 04:42:49 +0000 UTC
  • Martin Hope
    Pavel Mayorov 如何从事件或回调函数中返回值?或者至少等他们完成。 2020-08-11 16:49:28 +0000 UTC

热门标签

javascript python java php c# c++ html android jquery mysql

Explore

  • 主页
  • 问题
    • 热门问题
    • 最新问题
  • 标签
  • 帮助

Footer

RError.com

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

帮助

© 2023 RError.com All Rights Reserve   沪ICP备12040472号-5