#javascript #google-maps #google-maps-api-3 #google-maps-markers
#javascript #google-карты #google-maps-api-3 #google-карты-маркеры
Вопрос:
я пытаюсь создать диспетчер маркеров Google, но получаю сообщение об ошибке, маркер не определен, я закомментировал код, который вызывает проблему, я установил его для пользователя, нажимающего на карту и помещающего маркер, я хочу, чтобы он мог делать это автоматически, появляясь на карте Google с помощьюДИСПЕТЧЕР МАРКЕРОВ GOOGLE
@{
ViewBag.Title = "Index";
}
<h2>Index</h2>
<div id="map_canvas" style="width:500px; height:500px;"></div>
<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=true">
</script>
<script type="text/javascript">
var map;
var counter;
var latlng;
var locationAddress;
var geocoder;
function initialize() {
geocoder = new google.maps.Geocoder();
latlng = new google.maps.LatLng(46.043830, 14.488864);
var myOptions = {
zoom: 16,
center: latlng,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
counter = 0;
google.maps.event.addListener(map, 'click', function (event) {
map.setCenter(event.latlng);
placeMarker(event.latLng);
});
}
function placeMarker(location) {
var clickedLocation = new google.maps.LatLng(location);
latlng = location;
var marker = new google.maps.Marker({
position: location,
map: map
});
codeLatLng(location, marker);
}
function addLocationInfo(marker) {
var infoWindow = new google.maps.InfoWindow({ content: locationAddress, size: new google.maps.Size(50, 50) });
google.maps.event.addListener(marker, 'click', function () {
infoWindow.open(map, marker);
});
}
function codeLatLng(latlng, marker) {
if (geocoder) {
geocoder.geocode({ 'latLng': latlng }, function (results, status) {
if (status == google.maps.GeocoderStatus.OK) {
if (results[1]) {
locationAddress = results[1].formatted_address;
}
} else {
locationAddress = "Neznan naslov";
}
addLocationInfo(marker);
});
}
}
// // Create a new instance of the MarkerManager
// var mgr = new MarkerManager(map);
// // Create marker array
// var markers = [];
// // Loop to create markers and adding them to the MarkerManager
// for (var i = 0; i < 50; i = 0.1) {
// var marker = new GMarker(new GLatLng(59.0 i, 13.80 i));
// markers.push(marker);
// }
// // Add the array to the MarkerManager
// mgr.addMarkers(markers);
// // Refresh the MarkerManager to make the markers appear on the map
// mgr.refresh();
$(document).ready(function () {
initialize();
});
</script>
Сообщение об ошибке: MarkerManager не определен
Ответ №1:
Вы смешиваете код Google Maps API 2 и API 3.
Удалите параметр v = 2 или измените его на v = 3 (или, например, v = 3.5).
Измените это: sensor=true на sensor= true или sensor= false
Удалите ключ API, который требуется только для API 2.
Избавьтесь от всего кода типа GMap2, GLatLng, который предназначен для API 2, и измените его на синтаксис API 3.
Комментарии:
1. я обновил свой код, теперь у меня новая проблема, извините за путаницу.. я попробую ваше решение и посмотрю, что произойдет, глупо, что я перепутал коды API.
2. попытка сделать это по-своему все еще вызывает проблемы, я буду придерживаться поправки к кодированию, которую я внес в свой первый пост, и ждать, пока кто-нибудь не сможет мне помочь / направить
3. «your way» по-прежнему использует код API 2, который несовместим с API 3. Вы вызываете файл JS, который требуется менеджеру маркеров?
4. как мне тогда изменить его на API 3? для меня все это довольно ново. Черт, у меня нет файла JS, откуда я могу его загрузить, или я могу вызвать его извне?
5. Вероятно, вы могли бы начать здесь: google-maps-utility-library-v3.googlecode.com/svn/tags /…