2012-06-17 7 views
0

Я пытаюсь добавить маркер в свою Карту Google, и я не могу заставить его появляться.Добавление маркера Google Maps

Я вызываю функцию, createMarkers(x, y) и передаю две строки с страницы aspx.

Вот функция createMarkers:

function createMarkers(x, y) { 

var latlng = new google.maps.LatLng(x, y); 
console.log(latlng); 

var marker = new google.maps.Marker({ 
    position: latlng, 
    map: map, 
    title: "User location" 
}); 

}; 

Маркер не отображается на карте, и никаких ошибок не печатаются в консоли.

Я вошел мой переменной latlng в консоль, чтобы инспектировать и это то, что он показывает:

O 
ab: 51.486091 
cb: -0.05983800000001338 
__proto__: O 

Я просмотрел документацию Google на маркеры here и код, который я получил выглядит хорошо достаточно, чтобы работать.

Последнее, я также попытался добавить координаты непосредственно к переменной latlng вместо использования моих параметров x & y. Это тоже не сработало.

Наверное, мне не хватает чего-то довольно очевидного. Как всегда, любая помощь будет принята с благодарностью!

JA

+0

убедитесь, что «карта» будет объявлен на глобальном уровне, в противном случае функция не может быть в состоянии получить к нему доступ. Если это не так, отправьте живое, как код, демонстрируя проблему, чтобы мы могли ее отладить. –

+0

Может быть немного сложно настроить скрипку, поскольку я использую asp.net мастер-страницы и код за страницами. Я определенно объявляю карту на глобальном уровне, но я также попытался удалить ее и объявить ее локально в функции, которая тоже не работает. – Jim

+0

Нет, объявление локально не будет, поскольку оно должно ссылаться на инициализированную карту. Другая распространенная проблема, которую люди испытывают, заключается в том, что они устанавливают глобальную карту переменных, но затем объявляют локальную переменную var map = в функции инициализации. Я не думаю, что мы можем помочь вам гораздо больше в этом пункте, не видя ваш код. Я бы сделал карту, используя ваш код asp.net, а затем скопировал и вставил javascript в jsFiddle. Только нужно быть подмножеством, которое реплицирует проблему. –

ответ

0

Это функция, которую я использую, чтобы сделать карту и добавить маркеры:

function renderMap(mapContainer) { 
    var mapOptions = { 
      zoom: 4, 
      center: new google.maps.LatLng(43.645004, -79.380707), 
      mapTypeId: google.maps.MapTypeId.ROADMAP 
     }; 
    window.map = new google.maps.Map(mapContainer, mapOptions); 
} 

function addMarkerToMap(lat, long, titleText) { 
    new google.maps.Marker({ 
     title: titleText, 
     map: map, 
     position: new google.maps.LatLng(lat, long) 
    }); 
} 
+0

Спасибо за помощь. Я попытался использовать функцию 'addMarkerToMap', но получаю точно такие же результаты. – Jim

+0

Возможно, попробуйте добавить 'marker.setMap (map);' с исходным кодом, указанным в документах API Карт (https://developers.google.com/maps/documentation/javascript/overlays#AddingOverlays). – nbsp

+0

У меня было это изначально, это все еще не сработало!Привет, хотя! – Jim

0

функция, как это должно работать.

Предполагая, что карта-переменная доступна и указывает на карте-объект:

Добавление маркера на карте не будет установлено окно просмотра карты, чтобы содержать маркер, может быть, что маркер присутствует , но вне области просмотра?

Попробуйте добавить это к концу createMarkers():

map.setCenter(latlng); 
+0

Я не думаю, что это проблема, я знаю примерно, где должен быть маркер, и он просто не появляется. Я попробую позже, чтобы быть уверенным, хотя! Спасибо за вашу помощь. – Jim

Смежные вопросы