我正在尝试使用Google地图坐标在第三方网站的XML Feed中使用,该网站应自行创建地图。我使用URL http://maps.google.com/maps/geo?q=hong%20kong&output=json&oe=utf8&sensor=false(单击此链接将无法正常工作,但复制和粘贴确实如此)。这给了我点坐标114.1094970和22.3964280。如果我将这些坐标直接放入谷歌地图中它们不起作用,那么我做错了什么?
我的函数本身的代码如下,但它似乎是谷歌地图而不是我的代码的固有问题:
function getLatandLong($add)
{
$url = 'http://maps.google.com/maps/geo?q='.urlencode($add).'&output=json&oe=utf8&sensor=false';
$data = @file_get_contents($url);
$jsondata = json_decode($data,true);
if(is_array($jsondata )&& $jsondata ['Status']['code'] == 200){
$output['lat'] = $jsondata ['Placemark'][0]['Point']['coordinates'][0];
$output['lng'] = $jsondata ['Placemark'][0]['Point']['coordinates'][1];
}
return $output;
}
非常感谢任何帮助!
答案 0 :(得分:1)
这些坐标是正确的,适用于Google地图。
我猜这是因为你以错误的顺序传递它们:
你需要先放入纬度坐标,如中所示
22.396428 114.109497
不
114.109497 22.396428
确实在查看代码片段时,你会错误地解析它们:JSON数据的经度是第一个,纬度是第二个......因此代码应该是:
$output['lat'] = $jsondata ['Placemark'][0]['Point']['coordinates'][1];
$output['lng'] = $jsondata ['Placemark'][0]['Point']['coordinates'][0];
答案 1 :(得分:0)
您可以使用google maps geo coordinates:
来使用jquery mobile app的这个示例jsfiddle-google-maps-geo-coordinates
或使用自定义图片:jsfiddle-google-map-with-images
头是:<link rel="stylesheet" href="http://code.jquery.com/mobile/1.2.0/jquery.mobile-1.2.0.min.css" />
<!--link rel="stylesheet" href="/Content/jquery-mobile-responsive.css" /-->
<script src="http://code.jquery.com/jquery-1.8.3.min.js"></script>
<script src="http://code.jquery.com/mobile/1.2.0/jquery.mobile-1.2.0.min.js"></script>
<script src="http://maps.google.com/maps/api/js?sensor=true&language=en"></script>
<script>
$(document).bind("mobileinit", function () {
$.mobile.ajaxEnabled = false;
});
$(Start);
function Start() {
$("#google_map .ui-collapsible-heading").click(function () {
var locations = [
['<br/>Main Office', 31.590496, 34.561981, 4],
['Sensor 16<br/>User Name: 16_DE-1R', 31.590595, 34.562980, 5],
['Sensor 17<br/>User Name: 17_TEN-2MP', 31.590694, 34.563979, 3],
['Sensor 18<br/>User Name: 18_TEN-2MP', 31.590793, 34.564978, 2],
];
var map = new google.maps.Map(document.getElementById('googleMap'), {
zoom: 17,
center: new google.maps.LatLng(31.590892, 34.561977),
mapTypeId: google.maps.MapTypeId.ROADMAP
});
var infowindow = new google.maps.InfoWindow();
var marker, i;
for (i = 0; i < locations.length; i++) {
marker = new google.maps.Marker({
position: new google.maps.LatLng(locations[i][3], locations[i][2]),
map: map
});
google.maps.event.addListener(marker, 'click', (function (marker, i) {
return function () {
infowindow.setContent(locations[i][0]);
infowindow.open(map, marker);
}
})(marker, i));
}
});
}
</script>
和身体:
<div data-role="page" class="type-interior">
<div data-role="header" data-theme="a">
<a data-icon="back" href="#" rel="external">Back</a>
<h1>Sensor</h1>
</div>
<div data-role="content">
<div class="content-primary">
<h2>Sensor: 16</h2>
<div data-role="collapsible-set">
<div id="google_map" data-role='collapsible' data-collapsed=true data-theme="b" data-content-theme="d">
<h1>Sensor Map</h1>
<div id="googleMap" style="width:100%; height:300px;"></div>
</div>
</div>
<ul data-role="listview" data-inset="true" data-theme="b">
<li data-role="list-divider"></li>
<li><a href="#" rel="external">Configure Comm</a></li>
<li><a href="#" rel="external">Measurements</a></li>
<li><a href="#" rel="external">Users</a></li>
</ul>
</div>
<div class="content-secondary">
<div data-role="collapsible" data-collapsed="true" data-theme="b" data-content-theme="d">
<h3>More Options</h3>
<ul data-role="listview" data-theme="c" data-dividertheme="d">
<li data-role="list-divider">Actions</li>
<li><a href="/Home/UserList?back=Index" rel="external">Add User</a></li>
<li><a href="#" rel="external">Edit Sensor</a></li>
<li><a href="#" rel="external">Delete Sensor</a></li>
</ul>
</div>
</div>
</div>
<div data-role="footer" data-theme="a">
<h4>Mobile</h4>
</div>