Я создаю функцию javascript, которая загружает карты Google в shadowbox, это довольно просто с помощью этого кода (я использовал плагин calld GeoPlugin, чтобы получить широту и долготу, потому что я сейчас не знаю, как получить широту и долготуавтоматически):
function initGeoLocationOnDemand() {
$('a.btnInitGeoLoc').click(function () {
if (GBrowserIsCompatible()) {
Shadowbox.open({
player: "html",
content: "",
height: 300,
width: 500,
options: {
onFinish: function (item) {
var body = document.getElementById(Shadowbox.playerId);
var map = new GMap2(body);
//using geoPlugin to get lat and long
var point = new GLatLng(geoplugin_latitude(), geoplugin_longitude());
map.setCenter(point, 15);
var marker = new GMarker(point);
var addrFields = ['street_address'];
map.addOverlay(marker);
marker.openInfoWindow(document.createTextNode("hello");
// add some simple controls
map.addControl(new GSmallMapControl());
map.addControl(new GMapTypeControl());
}
}
});
} else {
alert("Your browser is not compatible with Google Maps!");
}
});
Shadowbox.init();
}
Теперь я хотел бы использовать Обратное геокодирование GoogleMaps , чтобы попасть внутрь информационного окна в информации маркера googleMaps, например: название города, название страны, название улицы, почтовый индекси т. д.
Я сделал этот код, следуя API GoogleMaps, но он больше не работает ... всегда используя GeoPlugin:
function initGeoLocationOnDemand() {
$('a.btnInitGeoLoc').click(function () {
if (GBrowserIsCompatible()) {
Shadowbox.open({
player: "html",
content: "",
height: 300,
width: 800,
options: {
onFinish: function (item) {
var body = document.getElementById(Shadowbox.playerId);
var geocoder;
var map = new google.maps.Map(body);
var infowindow = new google.maps.InfoWindow();
var marker;
function initialize() {
geocoder = new google.maps.Geocoder();
var latlng = new google.maps.LatLng(geoplugin_latitude(),geoplugin_longitude());
var myOptions = {
zoom: 8,
center: latlng,
mapTypeId: google.maps.MapTypeId.ROADMAP
}
map = new google.maps.Map(body, myOptions);
}
function codeLatLng() {
var input = document.getElementById("latlng").value;
var latlngStr = input.split(",", 2);
var lat = parseFloat(latlngStr[0]);
var lng = parseFloat(latlngStr[1]);
var latlng = new google.maps.LatLng(lat, lng);
geocoder.geocode({ 'latLng': latlng }, function (results, status) {
if (status == google.maps.GeocoderStatus.OK) {
if (results[1]) {
map.setZoom(11);
marker = new google.maps.Marker({
position: latlng,
map: map
});
infowindow.setContent(results[1].formatted_address);
infowindow.open(map, marker);
}
} else {
alert("Geocoder failed due to: " + status);
}
});
}
}
}
});
} else {
alert("Your browser is not compatible with Google Maps!");
}
});
Shadowbox.init();
}
Есть способ получить широтуи долгота без использования плагинов?
Есть способ получить информацию о названии страны, названии города, названии улицы, почтовом индексе и т. д.?
Заранее спасибо за помощь!