Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在地图中使用csv和svg创建基于位置的标记_Csv_Svg_Here Api - Fatal编程技术网

在地图中使用csv和svg创建基于位置的标记

在地图中使用csv和svg创建基于位置的标记,csv,svg,here-api,Csv,Svg,Here Api,我目前正在尝试通过使用csv文件和svg格式的定位针在地图上创建标记 我使用了一个示例代码,从这里映射到有一个坚实的起点,但在我看来,还有更多的工作要做。 我将CSV和SVG文件都存储在我的计算机上,所以我尝试在代码中插入一个本地url路径。CSV文件称为“han_parks”。它现在基本上只有4个组件:“名称”、“纬度”、“液化天然气”、“典型”。我很困惑,因为代码要求的是行而不是列,但它在Here Maps网站上的一个示例中起了作用。以下是我的CSV文件和地理位置的代码基础: let pro

我目前正在尝试通过使用csv文件和svg格式的定位针在地图上创建标记

我使用了一个示例代码,从这里映射到有一个坚实的起点,但在我看来,还有更多的工作要做。 我将CSV和SVG文件都存储在我的计算机上,所以我尝试在代码中插入一个本地url路径。CSV文件称为“han_parks”。它现在基本上只有4个组件:“名称”、“纬度”、“液化天然气”、“典型”。我很困惑,因为代码要求的是而不是列,但它在Here Maps网站上的一个示例中起了作用。以下是我的CSV文件和地理位置的代码基础:

let provider = new H.datalens.RawDataProvider({
dataUrl: "file:///C:\Users\oem\Desktop\MyName\WIXCode\HereMaps\CSV\han_parks.csv" + Date.now(),
dataToFeatures: (data) => {
    let parsed = helpers.parseCSV(data);
    let features = [];
    let row = null;
    let feature = null;

    for (let i = 1, l = parsed.length; i < l; i++) {
        row = parsed[i];
        feature = {
            'type': 'Feature',
            'geometry': {
                'type': 'Point',
                'coordinates': [Number(row[2]), Number(row[1])]
            },
            'properties': {
                'Name': row[0],
                'Type':  row[3]
            }
        };
        features.push(feature);
    }
    return features;
},
featuresToRows: (features) => {
    let rows = [], feature;
    for (let i = 0, l = features.length; i < l; i++) {
        feature = features[i];
        rows.push([{
                lat: feature.geometry.coordinates[1],
                lng: feature.geometry.coordinates[0]
            },
            feature.properties.Name,
            feature.properties.Typ
        ]);
    }
    return rows;
}
});
let layer = new H.datalens.ObjectLayer(provider, {
    pixelRatio: window.devicePixelRatio,

    rowToMapObject: function (data) {
        let coordinates = data[0];
        let Name = data[1];
        return new H.map.Marker(coordinates);
    },

    rowToStyle: function (data, zoom) {
        if (!venueIcons[data[4]]) { return }
        let icon = H.datalens.ObjectLayer.createIcon(venueIcons[data[4]],
            {size: 30 * pixelRatio});
        return {icon};
    }
});
let provider=new H.datalens.RawDataProvider({
数据URL:“file:///C:\Users\oem\Desktop\MyName\WIXCode\HereMaps\CSV\han\u parks.CSV“+Date.now(),
dataToFeatures:(数据)=>{
让parsed=helpers.parseCSV(数据);
让特征=[];
设row=null;
设feature=null;
for(设i=1,l=parsed.length;i{
让行=[],特征;
for(设i=0,l=features.length;i
SVG标记对我来说更麻烦。用于Here Maps示例的SVG代码非常广泛,我不知道我是否做对了。因为它也存储在本地,所以我尝试了与以前相同的方法来处理CSV文件。标记的名称是位置\ U pin

 (function () {
'use strict';

let venueIcons = {};

venueIcons['Park'] = `<svg xmlns:xlink="http:///C:\Users\oem\Desktop\MyName\WIXCode\HereMaps\location_pin.svg" viewBox="0 0 34.58 36.33" width="30" height="30"></svg>`;

Object.assign(window, {venueIcons});

}()); 
(函数(){
"严格使用",;
设venueIcons={};
VenueCons['Park']=`;
赋值(窗口,{venueIcons});
}()); 
我有几个想法,为什么它不工作,但我实际上是一个noob在编码。我希望代码中有几个错误。这个项目对我来说意义重大,所以我期待着你的帮助和投入

如果您想深入了解Here Maps示例,请点击以下链接:

致以最良好的祝愿


Daud

不幸的是,data lens库现在已被弃用,不再受支持。建议迁移到JS API 3.1,使用标记在地图上添加对象。

在一般浏览器中,对于访问任何本地csv文件(例如C://)有限制,您应该尝试将文件放在web服务器上,或者在本地计算机上有web服务器,然后尝试提供文件的url(例如)@谢谢你的回复。很抱歉,我忘了提到我用WIX代码开发我的网站,整个代码都存储在html iframe中。所以事实上,我并不是真的用笔记本电脑上的文件夹来存储我的代码。也许我误解了,但从上面共享的代码来看,引用的文件是'file:///C:\用户\oem\Desktop\MyName\WIXCode\HereMaps\CSV\han\u parks.CSV在您的本地文件夹上?你能使用http/https协议访问它吗?@JithinKrishnan不,你是对的。我无法通过这种方式访问csv文件。现在我用xammp/phpmyadmin方法创建了一个文件夹,并将csv文件放在那里,但它仍然无法工作。我仍然有一些地方做错了。