Newer
Older
* Location chooser interface.
*/
if (obj.locpick_coord) {
google.maps.event.trigger(obj.map, "click", { 'latLng': obj.locpick_coord });
//obj.map.removeOverlay(obj.locpick_point);
if (obj.locpick_point) obj.locpick_point.setMap(null);
Reuben Turk
committed
obj.locpick_point = null;
obj.locpick_coord = null;
obj.change('locpickchange', -1);
});
obj.locpick_coord = new google.maps.LatLng(obj.vars.latitude, obj.vars.longitude);
google.maps.event.addListener(obj.map, "click", function (event) {
google.maps.event.trigger(obj.map, "resize");
if (event) {
Brandon Bergren
committed
if (!obj.locpick_point) {
obj.locpick_point = new google.maps.Marker({
position: event.latLng,
map: obj.map,
draggable: true
});
}
else {
obj.locpick_point.setPosition(event.latLng);
google.maps.event.addListener(obj.locpick_point, 'drag', function () {
//obj.locpick_coord = obj.locpick_point.getLatLng();
obj.locpick_coord = new google.maps.LatLng(obj.locpick_point.position.lat(), obj.locpick_point.position.lng());
obj.change('locpickchange', binding);
});
google.maps.event.addListener(obj.locpick_point, 'dragend', function () {
//obj.locpick_coord = obj.locpick_point.getLatLng();
obj.locpick_coord = new google.maps.LatLng(obj.locpick_point.position.lat(), obj.locpick_point.position.lng());
obj.change('locpickchange', binding);
});
obj.locpick_coord = event.latLng;
obj.map.panTo(event.latLng);
obj.change('locpickchange', binding);
}
else {
// Unsetting the location
// Fake a click to set the initial point, if one was set.
if (obj.vars.behavior.locpick) {
if (!obj.locpick_invalid) {
obj.change('locpickchange', -1);
}
}
});
});
Drupal.gmap.addHandler('locpick_latitude', function (elem) {
obj.bind("init", function () {
if (elem.value !== '') {
obj.vars.latitude = Number(elem.value);
//obj.locpick_coord = new GLatLng(obj.vars.latitude, obj.vars.longitude);
obj.locpick_coord = new google.maps.LatLng(obj.vars.latitude, obj.vars.longitude);
}
else {
obj.locpick_coord = null;
obj.locpick_invalid = true;
}
});
if (obj.locpick_coord) {
elem.value = obj.locpick_coord.lat();
}
else {
elem.value = '';
}
});
//obj.locpick_coord = new GLatLng(Number(elem.value), obj.locpick_coord.lng());
obj.locpick_coord = new google.maps.LatLng(Number(elem.value), obj.locpick_coord.lng());
obj.change('locpickchange', binding);
}
else {
//obj.locpick_coord = new GLatLng(Number(elem.value), 0.0);
obj.locpick_coord = new google.maps.LatLng(Number(elem.value), 0.0);
}
}
else {
obj.change('locpickremove', -1);
}
});
});
Drupal.gmap.addHandler('locpick_longitude', function (elem) {
obj.bind("init", function () {
if (elem.value !== '') {
obj.vars.longitude = Number(elem.value);
//obj.locpick_coord = new GLatLng(obj.vars.latitude, obj.vars.longitude);
obj.locpick_coord = new google.maps.LatLng(obj.vars.latitude, obj.vars.longitude);
}
else {
obj.locpick_invalid = true;
}
});
if (obj.locpick_coord) {
elem.value = obj.locpick_coord.lng();
}
else {
elem.value = '';
}
});
//obj.locpick_coord = new GLatLng(obj.locpick_coord.lat(), Number(elem.value));
obj.locpick_coord = new google.maps.LatLng(obj.locpick_coord.lat(), Number(elem.value));
obj.change('locpickchange', binding);
}
else {
//obj.locpick_coord = new GLatLng(0.0, Number(elem.value));
obj.locpick_coord = new google.maps.LatLng(0.0, Number(elem.value));
}
}
else {
obj.change('locpickremove', -1);
}
});
});