如何在地图上显示从 XML 获取经度和纬度值的位置
How to show location on a map taking longitude and latitude values from XML
这是一个 XML 条目,它采用 PHP 形式的地理定位。我想将这些值显示为 HTML:
中的地图
<entries>
<entry>
<name>Anny</name>
<email>anny1@hotmail.com</email>
<place>Fridays</place>
<comment>Very Good</comment>
<food>Jack Daniels Burger</food>
<kitchen>American</kitchen>
<rating>5</rating>
<latitude>34.7618259</latitude>
<longitude>33.0283905</longitude>
<picture/>
</entry>
</entries>
我想你想将这些 LatLong 点显示为标记。以下是如何在 google 地图中做到这一点。
var myLatlng = new google.maps.LatLng(-25.363882,131.044922);
var marker = new google.maps.Marker({
position: myLatlng,
title:"Hello World!"
});
// To add the marker to the map, call setMap();
marker.setMap(map);
在 https://developers.google.com/maps/documentation/javascript/markers
查看更多
类似地,您可以在 mapbox 中这样做
L.mapbox.featureLayer({
// this feature is in the GeoJSON format: see geojson.org
// for the full specification
type: 'Feature',
geometry: {
type: 'Point',
// coordinates here are in longitude, latitude order because
// x, y is the standard for GeoJSON and many formats
coordinates: [
-77.03221142292,
38.913371603574
]
}).addTo(map);
你是如何生成这个 XML 的?我假设您使用 php 来生成它。
假设您使用的是 google-maps API.
,此处将通过 JavaScript 执行此操作
也许这可以帮助您入门:
var xml = "your xml file"
markers = xml.documentElement.getElementsByTagName("marker");
for (var i = 0; i < markers.length; i++) {
var name = entries[i].getAttribute("name");
var email = entries[i].getAttribute("email");
var place ..... an so on
var lat = entries[i].getAttribute("latitude");
var lng = entries[i].getAttribute("longitude");
//the creation of point
point = new google.maps.LatLng(
lat,
lng);
//create actual marker
marker = new google.maps.Marker({
map: map,
position: point,
});
创建信息 window:
infoWindow = new google.maps.InfoWindow;
var html = name + " " + email + ' ' place ; //+ ... whatever else
bindInfoWindow(marker, map, infoWindow, html);
function bindInfoWindow(marker, map, infoWindow, html) {
google.maps.event.addListener(marker, 'click', function() {
infoWindow.close();
infoWindow.setContent(html);
infoWindow.open(map, marker, html);
map.setCenter(marker.getPosition()); // this will center the map on the clicked marker
});
}
希望其中的一些可以帮助
这是一个 XML 条目,它采用 PHP 形式的地理定位。我想将这些值显示为 HTML:
中的地图 <entries>
<entry>
<name>Anny</name>
<email>anny1@hotmail.com</email>
<place>Fridays</place>
<comment>Very Good</comment>
<food>Jack Daniels Burger</food>
<kitchen>American</kitchen>
<rating>5</rating>
<latitude>34.7618259</latitude>
<longitude>33.0283905</longitude>
<picture/>
</entry>
</entries>
我想你想将这些 LatLong 点显示为标记。以下是如何在 google 地图中做到这一点。
var myLatlng = new google.maps.LatLng(-25.363882,131.044922);
var marker = new google.maps.Marker({
position: myLatlng,
title:"Hello World!"
});
// To add the marker to the map, call setMap();
marker.setMap(map);
在 https://developers.google.com/maps/documentation/javascript/markers
查看更多类似地,您可以在 mapbox 中这样做
L.mapbox.featureLayer({
// this feature is in the GeoJSON format: see geojson.org
// for the full specification
type: 'Feature',
geometry: {
type: 'Point',
// coordinates here are in longitude, latitude order because
// x, y is the standard for GeoJSON and many formats
coordinates: [
-77.03221142292,
38.913371603574
]
}).addTo(map);
你是如何生成这个 XML 的?我假设您使用 php 来生成它。 假设您使用的是 google-maps API.
,此处将通过 JavaScript 执行此操作也许这可以帮助您入门:
var xml = "your xml file"
markers = xml.documentElement.getElementsByTagName("marker");
for (var i = 0; i < markers.length; i++) {
var name = entries[i].getAttribute("name");
var email = entries[i].getAttribute("email");
var place ..... an so on
var lat = entries[i].getAttribute("latitude");
var lng = entries[i].getAttribute("longitude");
//the creation of point
point = new google.maps.LatLng(
lat,
lng);
//create actual marker
marker = new google.maps.Marker({
map: map,
position: point,
});
创建信息 window:
infoWindow = new google.maps.InfoWindow;
var html = name + " " + email + ' ' place ; //+ ... whatever else
bindInfoWindow(marker, map, infoWindow, html);
function bindInfoWindow(marker, map, infoWindow, html) {
google.maps.event.addListener(marker, 'click', function() {
infoWindow.close();
infoWindow.setContent(html);
infoWindow.open(map, marker, html);
map.setCenter(marker.getPosition()); // this will center the map on the clicked marker
});
}
希望其中的一些可以帮助