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