gpt4 book ai didi

javascript - 使用 gmaps.js 从 geoJSON 文件中放置标记

转载 作者:行者123 更新时间:2023-11-28 03:39:34 25 4
gpt4 key购买 nike

我需要使用 gmaps.js 从 .json 文件中获取标记信息并在本地 html 页面上显示标记位置。

我已经能够使用标准 Google Maps Platform API 使用此处给出的示例成功完成此操作: https://developers.google.com/maps/documentation/javascript/importing_data

我的 geojson 文件的格式与上例中的格式相同。不过,我想使用 gmaps.js,因为它简单易用。上面的代码如何改编并与 gmaps.js 一起使用?

这是迄今为止我非常基本的代码:

var mapObj = new GMaps({
el: '#map',
lat: 30.267283,
lng: -90.554560,
zoom: 2,
minZoom: 2
})

/*attempting to place markers from geojson file*/

/*managed to add markers manually*/
mapObj.addMarker({
lat: 30.267283,
lng: -90.554560,
title: 'Marker with InfoWindow',
infoWindow: {
content: '<p>HI!</p>'
},
click: function(e) {
mapObj.map.panTo(e.position);
}
});

我尝试使用:https://hpneo.dev/gmaps/examples/json.html

但是我的网页似乎导致出现空白屏幕。

最佳答案

Working with JSON 上的 gmaps 示例运行良好;你只需要根据你自己的 JSON 文件修改它。如果它看起来像 Google's documentation 中的那个,那么您可以像 gmaps.js 一样直接使用 getJSON 加载它。

查看 this jsbin 以获取演示和指导。完整代码如下。希望对您有帮助!

<!DOCTYPE html>
<html>

<head>
<style>
#map {
height: 100%;
}

html,
body {
height: 100%;
margin: 0;
padding: 0;
}
</style>
</head>

<body>
<div id="map"></div>

<script src="https://code.jquery.com/jquery-3.4.1.js" integrity="sha256-WpOohJOqMqqyKL9FccASB9O0KwACQJpFTUBLTYOVvVU=" crossorigin="anonymous"></script>
<script async defer src="https://maps.googleapis.com/maps/api/js?key="></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/gmaps.js/0.4.25/gmaps.js"></script>

<script>
var map;

function loadResults(data) {
var markers_data = [];

for (var i = 0; i < data.features.length; i++) {
var coords = data.features[i].geometry.coordinates;
markers_data.push({
lat: coords[1],
lng: coords[0],
infoWindow: {
content: '<p>HI!</p>'
},
click: function(e) {
map.map.panTo(e.position);
}
});
}
map.addMarkers(markers_data);

}

$(document).on('click', '.pan-to-marker', function(e) {
e.preventDefault();

var position, lat, lng, $index;

$index = $(this).data('marker-index');

position = map.markers[$index].getPosition();

lat = position.lat();
lng = position.lng();

map.setCenter(lat, lng);
});

$(document).ready(function() {
map = new GMaps({
el: '#map',
lat: 30.267283,
lng: -90.554560,
zoom: 2,
minZoom: 2
});

map.on('marker_added', function(marker) {
var index = map.markers.indexOf(marker);
if (index == map.markers.length - 1) {
map.fitZoom();
}
});

var xhr = $.getJSON('https://api.myjson.com/bins/11fqjv');
xhr.done(loadResults);
});
</script>
</body>

</html>

关于javascript - 使用 gmaps.js 从 geoJSON 文件中放置标记,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57404798/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com