Google maps api 3 谷歌地图和位置
我正在使用CakePHP构建一个应用程序,它将存储事件,包括事件位置。当用户访问该应用程序时,他们将看到一个谷歌地图,该地图将获取他们的位置,并以小插脚的形式显示他们附近的事件,他们可以单击这些插脚查看事件详细信息 不过,我有一些问题: 1.)如何在数据库中存储位置?实际地理位置坐标是最佳选择吗?我如何让用户轻松创建事件并输入它们 2.)一旦事件就绪,如何使用从数据库中提取的信息创建自定义PIN?例如foursquare: 3.)在使用HTML5地理位置获取用户位置的同时,如何像Foursquare那样在地图上再次显示一个小加载器 到目前为止,我已经成功地创建了地图,缩小了控件,并获得了查看器的位置,但我不确定如何做到这一点,并向用户显示更好的地理位置反馈 如果有人能帮我解决另外两个问题,我将不胜感激,因为到目前为止,我觉得这很困惑。谢谢Google maps api 3 谷歌地图和位置,google-maps-api-3,Google Maps Api 3,我正在使用CakePHP构建一个应用程序,它将存储事件,包括事件位置。当用户访问该应用程序时,他们将看到一个谷歌地图,该地图将获取他们的位置,并以小插脚的形式显示他们附近的事件,他们可以单击这些插脚查看事件详细信息 不过,我有一些问题: 1.)如何在数据库中存储位置?实际地理位置坐标是最佳选择吗?我如何让用户轻松创建事件并输入它们 2.)一旦事件就绪,如何使用从数据库中提取的信息创建自定义PIN?例如foursquare: 3.)在使用HTML5地理位置获取用户位置的同时,如何像Foursqu
var map;
function initialize() {
var myOptions = {
zoom: 8,
panControl: false,
zoomControl: true,
zoomControlOptions: {
style: google.maps.ZoomControlStyle.SMALL
},
mapTypeControl: false,
scaleControl: false,
streetViewControl: false,
overviewMapControl: false,
center: new google.maps.LatLng(-34.397, 150.644),
mapTypeId: google.maps.MapTypeId.ROADMAP
};
map = new google.maps.Map(document.getElementById('map_canvas'),
myOptions);
// Try HTML5 geolocation
if(navigator.geolocation) {
navigator.geolocation.getCurrentPosition(function(position) {
var pos = new google.maps.LatLng(position.coords.latitude,
position.coords.longitude);
var infowindow = new google.maps.InfoWindow({
map: map,
position: pos,
content: 'Location found using HTML5.'
});
map.setCenter(pos);
}, function() {
handleNoGeolocation(true);
});
} else {
// Browser doesn't support Geolocation
handleNoGeolocation(false);
}
}
function handleNoGeolocation(errorFlag) {
if (errorFlag) {
var content = 'Error: The Geolocation service failed.';
} else {
var content = 'Error: Your browser doesn\'t support geolocation.';
}
var options = {
map: map,
position: new google.maps.LatLng(60, 105),
content: content
};
var infowindow = new google.maps.InfoWindow(options);
map.setCenter(options.position);
}
google.maps.event.addDomListener(window, 'load', initialize);
1)存储位置的实际坐标和任何额外的元数据(如果有),如地名、foursquare\u id、日期等。以这种方式存储将使以后使用数据变得简单,例如在地图上绘图或位置名称查找。这将是您的位置型号
创建一个事件模型,然后可以将其关联到一个位置。您可以使用地图标记上的事件处理程序来拼凑一些不错的交互功能
类似于:“用户单击地图上的某个位置,弹出一个框,询问他们是否希望在此位置创建新事件,将标记添加到地图中,并显示一个表单,在其中他们可以填充事件详细信息,等等。”你明白了
看一看这张照片
2)您可以使用为地图标记设置自定义图像。看一看巨大的数据,寻找可能的想法
3)我理解的navigator.geolocation.getCurrentPosition()
方法是异步的。第一个参数是successCallback
考虑到这一点,您可以在地图上设置覆盖:“查找您的位置”,然后调用getCurrentPosition()。在你的successCallback函数中,你会隐藏覆盖图。你是如何处理这个@Cameron的?嘿,朋友。到目前为止,我还没有太多的时间来处理它,但我发现它非常混乱。你能举个简单的例子吗?干杯