这里 api 不会使用 Geojson 在地图上绘制,无法读取 属性 未定义的 geojson
Here api won't draw on map using Geojson, can't read property geojson of undefined
我正在尝试使用 geojson 文件在地图上绘制各种多边形。我该怎么做?
我正在使用版本 3 并复制了示例代码,但它无法正常工作。我已经尝试链接更多 javascript 源文件,甚至尝试使用多边形函数手动制作形状,但这也没有用。
var platform = new H.service.Platform({
app_id: 'xxxxxxxxxxx',
app_code: 'xxxxxxxxxxxxx',
useCIT: true,
useHTTPS: true
})
var defaultLayers = platform.createDefaultLayers()
// Initialize a map - this map is centered over Europe
var map = new H.Map(document.getElementById('map'),
defaultLayers.normal.map, {
center: {
lat: 102
lng: 50
},
zoom: 9,
pixelRatio: window.devicePixelRatio || 1
})
console.log(map)
this.map = map
// Add a resize listener to make sure that the map occupies the whole container
window.addEventListener('resize', () => map.getViewPort().resize())
var reader = new H.data.geojson.Reader('./path/to/file.json');
reader.parse();
this.map.addLayer(reader.getLayer());
}
<script type="text/javascript" src="https://js.api.here.com/v3/3.1/mapsjs-core.js"></script>
<script type="text/javascript" src="https://js.api.here.com/v3/3.1/mapsjs-service.js"></script>
<script type="text/javascript" src="https://js.api.here.com/v3/3.1/mapsjs-ui.js"></script>
<script type="text/javascript" src="https://js.api.here.com/v3/3.1/mapsjs-mapevents.js"></script>
<script type="text/javascript" src="https://js.api.here.com/v3/3.1/mapsjs-data.js"></script>
我希望多边形像在 geojson.com 这样的网站上那样绘制在地图上,但我得到的只是控制台中的这个错误:('无法读取 属性 'geojson' 的未定义')。地图和其他一切正常。
我怀疑这与 H.data 未定义有关。但我不确定为什么会这样。有什么想法吗?
如果这很难读,我深表歉意,我以前没有做过。感谢您的帮助。
如果您要使用 HERE 地图 API 3.1 版,请参阅下面的快速入门教程。
https://developer.here.com/documentation/maps/topics/quick-start.html
您需要使用 APIKEY 而不是 APP_CODE 和 APP_ID。
var platform = new H.service.Platform({
'apikey': 'API-KEY'
});
将基础层对象更改为下面。
defaultLayers.normal.map -> defaultLayers.vector.normal.map
您需要输入 ',' 并可能在中心切换 lng 和 lat 属性。
center: {
lng: 102,
lat: 50
},
希望对您有所帮助。
我正在尝试使用 geojson 文件在地图上绘制各种多边形。我该怎么做?
我正在使用版本 3 并复制了示例代码,但它无法正常工作。我已经尝试链接更多 javascript 源文件,甚至尝试使用多边形函数手动制作形状,但这也没有用。
var platform = new H.service.Platform({
app_id: 'xxxxxxxxxxx',
app_code: 'xxxxxxxxxxxxx',
useCIT: true,
useHTTPS: true
})
var defaultLayers = platform.createDefaultLayers()
// Initialize a map - this map is centered over Europe
var map = new H.Map(document.getElementById('map'),
defaultLayers.normal.map, {
center: {
lat: 102
lng: 50
},
zoom: 9,
pixelRatio: window.devicePixelRatio || 1
})
console.log(map)
this.map = map
// Add a resize listener to make sure that the map occupies the whole container
window.addEventListener('resize', () => map.getViewPort().resize())
var reader = new H.data.geojson.Reader('./path/to/file.json');
reader.parse();
this.map.addLayer(reader.getLayer());
}
<script type="text/javascript" src="https://js.api.here.com/v3/3.1/mapsjs-core.js"></script>
<script type="text/javascript" src="https://js.api.here.com/v3/3.1/mapsjs-service.js"></script>
<script type="text/javascript" src="https://js.api.here.com/v3/3.1/mapsjs-ui.js"></script>
<script type="text/javascript" src="https://js.api.here.com/v3/3.1/mapsjs-mapevents.js"></script>
<script type="text/javascript" src="https://js.api.here.com/v3/3.1/mapsjs-data.js"></script>
我希望多边形像在 geojson.com 这样的网站上那样绘制在地图上,但我得到的只是控制台中的这个错误:('无法读取 属性 'geojson' 的未定义')。地图和其他一切正常。
我怀疑这与 H.data 未定义有关。但我不确定为什么会这样。有什么想法吗?
如果这很难读,我深表歉意,我以前没有做过。感谢您的帮助。
如果您要使用 HERE 地图 API 3.1 版,请参阅下面的快速入门教程。
https://developer.here.com/documentation/maps/topics/quick-start.html
您需要使用 APIKEY 而不是 APP_CODE 和 APP_ID。
var platform = new H.service.Platform({
'apikey': 'API-KEY'
});
将基础层对象更改为下面。
defaultLayers.normal.map -> defaultLayers.vector.normal.map
您需要输入 ',' 并可能在中心切换 lng 和 lat 属性。
center: {
lng: 102,
lat: 50
},
希望对您有所帮助。