大家好,最近在盐就google api上遇到一些问题。
还请大家帮忙
我的数据库里面有个地点的名称、经度、纬度、简介。
我想要直接用这个经纬度来定位地图的中心点或是制做MARKER。
问题1:
function initialize() {
geocoder = new google.maps.Geocoder();
var latlng = new google.maps.LatLng(25.051532, 121.520228);
var mapOptions = {
zoom: 10,
center: latlng
}
map = new google.maps.Map(document.getElementById('map-canvas'), mapOptions);
}
我透过alert(latlng),发现latlng是(25.051532, 121.520228)。
因此我改成 var latlng = (25.051532, 121.520228);
类似这样,就是不透过google.maps.LatLng()。
但是无法成功,好像一定要透过new google.maps.LatLng()。
请问这样要怎么设定?
问题2:
透过geocoder = new google.maps.Geocoder();传送地址然后收到status 和 results。
可以透过 map.setCenter(results[0].geometry.location);将地图中心点移到座标点。
同样的我不想透过呼叫geocoder得到回传值。
然后我就去查文件找到results回传的资料。
我就自己做一个假的
var myresults =[];
myresults[0] = {
"types":["sublocality","political"],
"formatted_address":"Winnetka, California, USA",
"address_components":[{
"long_name":"Winnetka",
"short_name":"Winnetka",
"types":["sublocality","political"]
},{
"long_name":"Los Angeles",
"short_name":"Los Angeles",
"types":["administrative_area_level_3","political"]
},{
"long_name":"Los Angeles",
"short_name":"Los Angeles",
"types":["administrative_area_level_2","political"]
},{
"long_name":"California",
"short_name":"CA",
"types":["administrative_area_level_1","political"]
},{
"long_name":"United States",
"short_name":"US",
"types":["country","political"]
}],
"geometry":{
"location": [34.213171,-118.571022],
"location_type":"APPROXIMATE"
}
}
map.setZoom(12);
map.setCenter(myresults[0].geometry.location);
一样无法成功...。
问题3:
是否真的一定要透过那几个api的参数才有办法?
还是我假的资料的形态有错?
最后就是api免费一天2500次要求是怎么计算的?
我如果一次跟他要求10个不同地点的资料,是算10次要求吗??
new google.maps.LatLng();
new google.maps.Geocoder();
new google.maps.Marker();
会不会产生要求?
还是只有callback才会产生要求?
还请大大帮忙解惑了...