Я создаю мобильную карту с помощью Google Map API V3. Она немного отличается от стандартной карты тем, что у меня есть категории маркеров, которые вы можете включать / выключать. Все отлично работает, но я не могу заставить работать геолокацию. Я перепробовал каждую комбинацию и фрагмент кода, который смог найти, и, самое большее, смог заставить его зарегистрировать запрос местоположения, но там не будет отображаться маркер, независимо от того, что я делаю. Я уверен, что делаю что-то очень простое неправильно, но я очень плохо знаком с Javascript, поэтому ответ уклоняется от меня.
Вот сокращенная версия моего текущего кода (содержит пример всего, но вырезает много повторяющихся переменных). Этот пример не включает в себя функции геолокации, так как я пробовал так много разных способов, я не уверен, какую из них я бы даже добавил сюда. Функция toggleMarkers () - это то, что я использую для включения / выключения маркеров, и я предполагаю, что именно в этом проблема отображаемого маркера геолокации. Если бы вы могли показать мне, как реализовать геолокацию в этом коде, я был бы очень признателен!
var markers = [];
function initialize() {
//Setting Map
var mapOptions = {
zoom: 18,
center: new google.maps.LatLng(45.73158,-122.636277),
mapTypeId: 'satellite'
}
var map = new google.maps.Map(document.getElementById("map_canvas"), mapOptions);
map.setTilt(0);
//Marker Categories
var markerBuildings = {
category: 'buildings',
}
var markerParking = {
category: 'parking',
}
// Icons
var iconBuilding = new google.maps.MarkerImage('images/building.png',
new google.maps.Size(32, 37),
new google.maps.Point(0,0),
new google.maps.Point(16,32));
var iconAmphitheater = new google.maps.MarkerImage('images/amphitheater.png',
new google.maps.Size(32, 37),
new google.maps.Point(0,0),
new google.maps.Point(16,32));
//Coordinates
//Buildings
var vmcb = new google.maps.Marker({
position: new google.maps.LatLng(45.730513,-122.638106),
map: map,
url: 'http://www.google.com/',
icon: iconBuilding,
data: markerBuildings
});
markers.push(vmcb);
var vadm = new google.maps.Marker({
position: new google.maps.LatLng(45.730899,-122.637742),
map: map,
url: 'http://www.google.com/',
icon: iconBuilding,
data: markerBuildings
});
markers.push(vadm);
}
function toggleMarkers(attr,val) {
if (markers){
for (i in markers) {
if(markers[i].data[attr] == val){
var visibility = (markers[i].getVisible() == true) ? false : true;
markers[i].setVisible(visibility);
}
}
}
}