如何解决一个文件中的简单折线和标记
我正在尝试创建一个静态 html 页面,该页面显示步行轨迹的折线以及沿途城镇的标记。我一直在使用 Google Maps API 站点提供的 html 示例文件。我有两个数组(一个用于折线,一个用于标记)。我可以创建一个示例文件来显示折线和一个示例文件来显示标记。
---------- 这里是折线示例--------
<script>
"use strict";
function initMap() {
const map = new google.maps.Map(document.getElementById("map"),{
zoom: 10,center: {
lat: 43.3473702427,lng: -1.7866905872
},mapTypeId: "terrain"
});
const flightPlanCoordinates = [
{
lat: 43.3473702427,lng: -1.7866905872
},{
lat: 43.3473476954,lng: -1.7865623441
},{
lat: 43.3473729249,lng: -1.7862672172
},{
lat: 43.3474351186,lng: -1.7861244734
},{
lat: 43.3474754356,lng: -1.7859851662
},{
lat: 43.347496558,lng: -1.7858726811
},{
lat: 43.3475023415,lng: -1.7857427616
},{
lat: 43.3474533912,lng: -1.7856312823
},{
lat: 43.3467171248,lng: -1.7854733672
},{
lat: 43.3458278049,lng: -1.7851600517
},{
lat: 43.3450604416,lng: -1.7848521005
},{
lat: 43.3443607204,lng: -1.7850081716
},{
lat: 43.3441632427,lng: -1.7851468921
},{
lat: 43.3423870336,lng: -1.7862907704
},{
lat: 43.3423038851,lng: -1.7863221187
},{
lat: 43.3422126062,lng: -1.7863554787
},{
lat: 43.3421186451,lng: -1.7864152417
},{
lat: 43.3419943415,lng: -1.786458157
},{
lat: 43.341907924,lng: -1.7864865717
},{
lat: 43.3418141305,lng: -1.7864960432
},{
lat: 43.3395636734,lng: -1.7880662251
},{
lat: 43.3394773398,lng: -1.7880819831
},{
lat: 43.3393750805,lng: -1.7881052848
},{
lat: 43.3393117134,lng: -1.7881597672
},{
lat: 43.3392953686,lng: -1.7882843222
},{
lat: 43.3392989729,lng: -1.78845305
},{
lat: 43.3393396251,lng: -1.788651282
},{
lat: 43.3393413853,lng: -1.7887586541
},{
lat: 43.3393360209,lng: -1.7888663616
},{
lat: 43.3393474203,lng: -1.7890360951
},{
lat: 43.3393621724,lng: -1.7891617399
},{
lat: 43.3393969573,lng: -1.7892939225
},{
lat: 43.3394075185,lng: -1.7894147895
},{
lat: 43.3393995557,lng: -1.7894981895
},{
lat: 43.3400335629,lng: -1.7926760204
},{
lat: 43.3403750416,lng: -1.7943606991
},{
lat: 43.3404274285,lng: -1.794564547
},{
lat: 43.3405581024,lng: -1.7947906069
},{
lat: 43.3408577554,lng: -1.7962014489
},{
lat: 43.3409312647,lng: -1.7964569293
},{
lat: 43.3410289977,lng: -1.7968221288
},{
lat: 43.341086749,lng: -1.797145335
},{
lat: 43.3411341906,lng: -1.7975875642
},{
lat: 43.341227565,lng: -1.7978497501
},{
lat: 43.3414114639,lng: -1.7980664223
},{
lat: 43.3415769227,lng: -1.7981714476
},{
lat: 43.3416830376,lng: -1.7983020376
},{
lat: 43.3418867178,lng: -1.7984791473
},{
lat: 43.3423764724,lng: -1.7990746815
},{
lat: 43.3427510597,lng: -1.7992604245
},{
lat: 43.3428710885,lng: -1.7993480153
},{
lat: 43.3431115653,lng: -1.7995948624
},{
lat: 43.3436958678,lng: -1.8000118621
},{
lat: 43.34389125,lng: -1.800135579
},{
lat: 43.3441171423,lng: -1.8003076594
},{
lat: 43.3442825172,lng: -1.8004375789
},{
lat: 43.3444631472,lng: -1.8005764671
},{
lat: 43.3446667437,lng: -1.8007254135
},{
lat: 43.3448162768,lng: -1.8008333724
},{
lat: 43.3448740281,lng: -1.8008811492
},];
const flightPath = new google.maps.Polyline({
path: flightPlanCoordinates,geodesic: true,strokeColor: "#FF0000",strokeOpacity: 1.0,strokeWeight: 2
});
flightPath.setMap(map);
}
</script>
//------- 结束折线示例 -----
//------- 开始标记示例 -----
<script>
let map;
"use strict";
function initMap() {
const map = new google.maps.Map(document.getElementById("map"),{
zoom: 10,center: {
lat: 43.3062762022,lng: -2.7221442573
},mapTypeId: "terrain"
});
const iconBase =
"https://developers.google.com/maps/documentation/javascript/examples/full/images/";
const icons = {
parking: {
icon: iconBase + "parking_lot_maps.png",},library: {
icon: iconBase + "library_maps.png",info: {
icon: iconBase + "info-i_maps.png",};
const features = [
{
position: new google.maps.LatLng(
43.3062762022,-2.7221442573
),type: "parking",{
position: new google.maps.LatLng(
43.279026635,-2.3127149418
),];
// Create markers.
for (let i = 0; i < features.length; i++) {
const marker = new google.maps.Marker({
position: features[i].position,icon: icons[features[i].type].icon,map: map,});
}
}
</script>
*/
解决方法
仅创建一次地图。然后将折线和标记添加到该地图。
代码片段:
"use strict";
function initMap() {
const map = new google.maps.Map(document.getElementById("map"),{
zoom: 9,center: {
lat: 43.3473702427,lng: -1.7866905872
},mapTypeId: "terrain"
});
const flightPlanCoordinates = [
{
lat: 43.3473702427,{
lat: 43.3473476954,lng: -1.7865623441
},{
lat: 43.3473729249,lng: -1.7862672172
},{
lat: 43.3474351186,lng: -1.7861244734
},{
lat: 43.3474754356,lng: -1.7859851662
},{
lat: 43.347496558,lng: -1.7858726811
},{
lat: 43.3475023415,lng: -1.7857427616
},{
lat: 43.3474533912,lng: -1.7856312823
},{
lat: 43.3467171248,lng: -1.7854733672
},{
lat: 43.3458278049,lng: -1.7851600517
},{
lat: 43.3450604416,lng: -1.7848521005
},{
lat: 43.3443607204,lng: -1.7850081716
},{
lat: 43.3441632427,lng: -1.7851468921
},{
lat: 43.3423870336,lng: -1.7862907704
},{
lat: 43.3423038851,lng: -1.7863221187
},{
lat: 43.3422126062,lng: -1.7863554787
},{
lat: 43.3421186451,lng: -1.7864152417
},{
lat: 43.3419943415,lng: -1.786458157
},{
lat: 43.341907924,lng: -1.7864865717
},{
lat: 43.3418141305,lng: -1.7864960432
},{
lat: 43.3395636734,lng: -1.7880662251
},{
lat: 43.3394773398,lng: -1.7880819831
},{
lat: 43.3393750805,lng: -1.7881052848
},{
lat: 43.3393117134,lng: -1.7881597672
},{
lat: 43.3392953686,lng: -1.7882843222
},{
lat: 43.3392989729,lng: -1.78845305
},{
lat: 43.3393396251,lng: -1.788651282
},{
lat: 43.3393413853,lng: -1.7887586541
},{
lat: 43.3393360209,lng: -1.7888663616
},{
lat: 43.3393474203,lng: -1.7890360951
},{
lat: 43.3393621724,lng: -1.7891617399
},{
lat: 43.3393969573,lng: -1.7892939225
},{
lat: 43.3394075185,lng: -1.7894147895
},{
lat: 43.3393995557,lng: -1.7894981895
},{
lat: 43.3400335629,lng: -1.7926760204
},{
lat: 43.3403750416,lng: -1.7943606991
},{
lat: 43.3404274285,lng: -1.794564547
},{
lat: 43.3405581024,lng: -1.7947906069
},{
lat: 43.3408577554,lng: -1.7962014489
},{
lat: 43.3409312647,lng: -1.7964569293
},{
lat: 43.3410289977,lng: -1.7968221288
},{
lat: 43.341086749,lng: -1.797145335
},{
lat: 43.3411341906,lng: -1.7975875642
},{
lat: 43.341227565,lng: -1.7978497501
},{
lat: 43.3414114639,lng: -1.7980664223
},{
lat: 43.3415769227,lng: -1.7981714476
},{
lat: 43.3416830376,lng: -1.7983020376
},{
lat: 43.3418867178,lng: -1.7984791473
},{
lat: 43.3423764724,lng: -1.7990746815
},{
lat: 43.3427510597,lng: -1.7992604245
},{
lat: 43.3428710885,lng: -1.7993480153
},{
lat: 43.3431115653,lng: -1.7995948624
},{
lat: 43.3436958678,lng: -1.8000118621
},{
lat: 43.34389125,lng: -1.800135579
},{
lat: 43.3441171423,lng: -1.8003076594
},{
lat: 43.3442825172,lng: -1.8004375789
},{
lat: 43.3444631472,lng: -1.8005764671
},{
lat: 43.3446667437,lng: -1.8007254135
},{
lat: 43.3448162768,lng: -1.8008333724
},{
lat: 43.3448740281,lng: -1.8008811492
},];
const flightPath = new google.maps.Polyline({
path: flightPlanCoordinates,geodesic: true,strokeColor: "#FF0000",strokeOpacity: 1.0,strokeWeight: 2
});
flightPath.setMap(map);
const iconBase =
"https://developers.google.com/maps/documentation/javascript/examples/full/images/";
const icons = {
parking: {
icon: iconBase + "parking_lot_maps.png",},library: {
icon: iconBase + "library_maps.png",info: {
icon: iconBase + "info-i_maps.png",};
const features = [
{
position: new google.maps.LatLng(
43.3062762022,-2.7221442573
),type: "parking",{
position: new google.maps.LatLng(
43.279026635,-2.3127149418
),];
// Create markers.
for (let i = 0; i < features.length; i++) {
const marker = new google.maps.Marker({
position: features[i].position,icon: icons[features[i].type].icon,map: map,});
}
}
/* Optional: Makes the sample page fill the window. */
html,body {
height: 100%;
width: 100%;
margin: 0;
padding: 0;
}
#map {
height: 100%;
}
<div id="map"></div>
<!-- Async script executes immediately and must be after any DOM elements used in callback. -->
<script src="https://maps.googleapis.com/maps/api/js?key=AIzaSyCkUOdZ5y7hMm0yrcCQoCvLwzdM6M8s5qk&callback=initMap" async></script>
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。