我需要向谷歌地图 api 添加许多标记,并使用 prompt() 为它们添加注释
I need to add many markers to Google maps api and add notes to them using prompt()
我已经做了以下工作;我在点击时做了标记,prompt()
我需要它来连接并保存到浏览器。现在,当我单击地图时,它会调用prompt("add your notes")
,我需要保存标记并在再次单击标记时显示此注释。
<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="style.css" type="text/css" />
<link rel="script" href="script.js" />`
<script src="jquery-1.11.3.min.js"></script>
<script type="text/javascript" src="http://maps.google.com/maps/api/js? sensor=false"></script>
<!-- Latest compiled and minified CSS -->
<link rel="stylesheet" href="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css">
<!-- jQuery library -->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
<!-- Latest compiled JavaScript -->
<script src="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.min.js"></script>
<script async defer
src="https://maps.googleapis.com/maps/api/js? key=AIzaSyDXhwWzYNap1UD89oL43dc725FZY_-98jw&callback=initMap">
</script>
<script type="text/javascript" src="http://maps.google.com/maps/api/js? libraries=places&sensor=false"></script>
<script src="https://apis.google.com/js/platform.js" async defer></script>
<script>
var xhttp = new XMLHttpRequest();
var map;
function initMap() {
map = new google.maps.Map(document.getElementById('map'), {
center: {lat: 51.0593325, lng: 15.1854451},
zoom: 5
});
google.maps.event.addListener(map, 'click', function(event) {
addMarker(event.latLng, map);
var poznamka = prompt("Zadaj svoju poznámku k miestu.");
var card = new map.card();
card.getBody().innerHTML = poznamka;
var naparsovane = JSON.parse(localStorage.getItem('map'));
if(a == []){
var index = 0;
}
else{
var index = a.length;
}
});
var infoWindow = new google.maps.InfoWindow({map: map});
// geolocation
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(function(position) {
var pos = {
lat: position.coords.latitude,
lng: position.coords.longitude
};
infoWindow.setPosition(pos);
infoWindow.setContent('Tvoja aktuálna poloha.');
map.setCenter(pos);
}, function() {
handleLocationError(true, infoWindow, map.getCenter());
});
} else {
// Browser doesn't support Geolocation
handleLocationError(false, infoWindow, map.getCenter());
}
function handleLocationError(browserHasGeolocation, infoWindow, pos) {
infoWindow.setPosition(pos);
infoWindow.setContent(browserHasGeolocation ?
'Error: Určenie tvojej polohy zlyhalo.':
'Error: Tvoj prehliadač nepodporuje určenie polohy.');
}
// Ak uživatel klikne na mapu zobrazí sa marker, každému markru je pridelený prvý volný index
var labels = 'ABCDEFGHIJKLMNOPQRSTUVXYZ';
var labelIndex = 0;
// Pridá marker do mapy
function addMarker(location, map) {
// Vyberie prvý voľný index, na ktorý uloží marker aby neprepísal už obsadený
//
var marker = new google.maps.Marker({
position: location,
label: labels[labelIndex++ % labels.length],
map: map,
draggable: true,
editable: true
});
}
}
// google.maps.event.addDomListener(window, 'load', initMap);
</script>`
我没有足够的观点来评论,所以在这里回答。
据我了解,当您单击地图时,当您单击创建的标记时,您应该显示您在提示中输入的文本。这是这样做的小提琴 - http://jsfiddle.net/pn992yy4/31/。当您单击标记信息窗口时,您在提示中输入的消息将显示在标记的信息窗口中。
基本上,我修改了addMarker
函数以调用一个名为 attachNote
的函数,该函数将您在提示对话框中输入的标记和消息作为参数。addMarker
函数将提供的消息附加到标记的信息窗口。
function attachNote(marker, note) {
var infowindow = new google.maps.InfoWindow({
content: note
});
marker.addListener('click', function() {
infowindow.open(marker.get('map'), marker);
});
}
在单击事件上调用的addMarker
函数也应具有poznamka
。
addMarker(event.latLng, map, poznamka);
希望这个答案有帮助。如果没有,请告诉我。
相关文章:
- 正在添加'X'按钮,在文本字段旁边使用javascript
- 如何在映射数组中添加换行符
- 正在将数据主题添加到所有项目
- ZeroClipboard-在复制之前添加到值
- 我可以在json对象中添加一个函数吗
- 将输入字段中的文本提交到我的数据库,同时将其添加到我的列表中
- 正在SharePoint 2013母版页中添加JQuery移动文件
- 如何添加浮动和非浮动,其他
- 添加文字和评论功能更新Div
- 如果使用 lodash 将属性存在于另一个对象中,则向对象添加属性
- 动态地改变“”的URL;添加新项目”;链接使用javascript/jquery
- 在函数中添加数组元素的数值
- 如何将歌曲添加到jPlayer
- 在html Select中添加搜索
- Java脚本时间添加
- FabricJs-限制主对象内添加对象的移动区域
- Javascript:将onkeydown事件添加到prompt()中
- 如何将添加的文本保存到 navigator.notification.prompt 中的新变量
- 我需要向谷歌地图 api 添加许多标记,并使用 prompt() 为它们添加注释
- 如何通过请求从另一个HTML页面将数据添加到行中来向一个HTML页面中的表添加行(可能使用"prompt&qu