嗨我在我的网站上使用Bing地图,并希望lat long在Bing地图上查明该位置。我的问题是在我的网站上如何使用pincode获得一个区域。是否有任何api我可以通过给出区域pin码来查询lat long。我想在后端做到这一点。使用一些ajax调用那个特定的web api并返回lat lang并将其保存到数据库中,以便我可以使用那个lat long在我的bing map上绘制位置。
我正在使用bing map 7,我需要将lat long值放入json对象并将其传递给Bing地图。
function GetMap()
{
var mapOptions = {
credentials: "Your Bing Maps Key",
center: new Microsoft.Maps.Location(47.592, -122.332), // i want these value in my database
mapTypeId: Microsoft.Maps.MapTypeId.birdseye,
zoom: 17,
showScalebar: false
}
var map = new Microsoft.Maps.Map(document.getElementById("mapDiv"), mapOptions);
}
我可以硬编码但是在我的应用程序中我给了客户端一个用于添加新位置的选项,所以在后端我希望它像客户端添加任何新位置时自动保存其lat也很长。
谢谢
答案 0 :(得分:1)
Geonames是一项适用于各种地点的优质服务,请查看他们提供的服务列表:
http://www.geonames.org/export/ws-overview.html
你能用这个来查找邮政编码吗? api.geonames.org/postalCodeLookupJSON?postalcode=6600&country=AT&username=demo
答案 1 :(得分:1)
使用pincodes获取lat,长值可能不是最好的解决方案,因为虽然PIN代码虽然流行了一个多世纪,但仍然是全球not a standard。例如在美国,pincodes(邮政编码)通常有5位数字(即06160),而在我的世界,它们通常是6位数或更多..
虽然您可以使用街道地址,州,国家和密码的组合来找出几乎每个地区的几乎正确的地理坐标。请参阅以下脚本,该脚本调用google api以查找Lat,Long值...在此,我将此代码捐赠给GPL下的社区: -
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.min.js"> </script>
<script src="http://maps.google.com/maps?file=api&v=3&key=ABQIAAAA7j_Q-rshuWkc8HyFI4V2HxQYPm-xtd00hTQOC0OXpAMO40FHAxT29dNBGfxqMPq5zwdeiDSHEPL89A" type="text/javascript"> </script>
<script type="text/javascript">
var geocoder, location1;
function initialize() {
geocoder = new GClientGeocoder();
}
function prepareQuery(){
var query='';
var a1 = document.getElementById('address1').value;
var a2 = document.getElementById('address2').value;
var a3 = document.getElementById('address3').value;
var cty = document.getElementById('city').value;
var stat = document.getElementById('state').value;
var cntry =document.getElementById('country').value;
var pin = document.getElementById('pincode').value;
if(a1 != null && a1!=''){
query = query + a1 + ",";
}
if(a2 != null && a2!=''){
query =query + a2 + ",";
}
if(a3 != null && a3!=''){
query = query + a3 + ",";
}
if(cty != null && cty!=''){
query = query + cty + ",";
}
if(stat != null && stat!=''){
query = query + stat + ",";
}
if(cntry != null && cntry!=''){
query = query + cntry + ",";
}
if(pin != null && pin!=''){
query = query + pin + ",";
}
// alert("Prepare Query Returns " +query);
return query;
}
function submitFunc(){
var location = prepareQuery();
geocoder.getLocations(location, function (response) {
if (!response || response.Status.code != 200)
{
alert("Sorry, we were unable to geocode the address");
}
else
{
location1 = {latitude: response.Placemark[0].Point.coordinates[1], longitude: response.Placemark[0].Point.coordinates[0], Address : response.Placemark[0].address};
var items = [];
$.each(location1, function(key, value){
items.push('<li id="' + key + '">' + key +" : "+ value + '</li>');
});
// alert(items)
$("body").append("Results is :-");
$('<ul/>', {
'class': 'my-new-list',
html: items.join('')
}).appendTo('body');
}
});
}
</script>
和html看起来像......
Line 1 : <input type="text" id="address1" value="" placeholder="Enter first line of address."/> <br></br>
Line 2 :<input type="text" id="address2" value="" placeholder="Enter second line of address."/> <br></br>
Line 3 :<input type="text" id="address3" value="" placeholder="Enter third line of address."/> <br></br>
City : <input type="text" id="city" value="" placeholder="Enter city name."/> <br></br>
State : <input type="text" id="state" value="" placeholder="Enter state name."/> <br></br>
Country : <input type="text" id="country" value="" placeholder="Enter country name."/> <br></br>
Pin Code : <input type="text" id="pincode" value="" placeholder="Enter pincode value."/> <br></br>
<input type="button" name="submitBtn" value="submit" onclick='submitFunc();'/> <br></br>
<h3> <strong> Your Results Will be displayed Here . . . .</strong> </h3>