獲取數據,上週,我發現這個文件mappanslow.html上 http://code.google.com/p/gmaps-samples-v3/source/browse/trunk/talks/io2011/map-usability/mappanslow.html?spec=svn265&r=265 ,這是非常有用的,我知道如何從一個JSON 文件中獲取數據。我正在V3中重新編碼此地圖目前 http://www.ville.rimouski.qc.ca/styles/carte/carte.jsp和我的問題 是,用戶必須能夠選擇哪些數據(從不同的 json文件)將通過選擇他想要在選擇 框中顯示「Imprimer」。 mappaslow.html正常工作與一個JSON文件,但我試圖使用 代碼不止一個JSON文件,如果我列出,每個例子中,我所有的 文件是這樣的:從不同的JSON文件
<script type="text/javascript" src="file1.json"></script>
<script type="text/javascript" src="file2.json"></script>
<script type="text/javascript" src="file3.json"></script>
的顯示的數據總是來自最後一個(file3.json)。
有沒有人請有一個想法如何解決這個問題?
有一個從mappaslow.html代碼:在這個例子當中,我的地圖中使用這個樣子
<script type="text/javascript" src="markers.json"></script>
<script type="text/javascript">
var map;
var timeout;
var m = [];
function init() {
map = new google.maps.Map(document.getElementById('map'), {
center: new google.maps.LatLng(44.85471, -93.24185),
zoom: 17,
mapTypeId: google.maps.MapTypeId.ROADMAP,
mapTypeControl: false
});
google.maps.event.addListener(map, 'bounds_changed', function() {
clearMarkers();
if (timeout) {
window.clearTimeout(timeout);
}
timeout = window.setTimeout(function() {
addMarkers();
}, 500);
});
}
function addMarkers() {
var bounds = map.getBounds();
for (var i = 0; i < markers.length; i++) {
var pos = new google.maps.LatLng(markers[i].lat, markers[i].lng);
if (bounds.contains(pos)) {
var marker = new google.maps.Marker({
map: map,
position: pos
});
m.push(marker);
}
}
}
function clearMarkers() {
for (var i = 0, marker; marker = m[i]; i++) {
marker.setMap(null);
}
m = [];
}
google.maps.event.addDomListener(window, 'load', init);
</script>
的JSON文件:
var markers = [
{"lat":44.86065444748757, "lng":-93.26223975870084},
{"lat":44.84990797511595, "lng":-93.22287578639873}];
感謝您的建議@無害的,但我希望能夠通過在參數中傳遞選定的.json的名稱來指定正確的變量,因爲它們的結構是相同的。喜歡的東西:
function addMarkers(jsonName) {
var rightJson = jsonName;
var bounds = map.getBounds();
for (var i = 0; i < rightJson.markers.length; i++) {
var pos = new google.maps.LatLng(rightJson.markers[i].lat, rightJson.markers[i].lng);
...
是否有可能做這樣的事情?我嘗試了很多方法,但總是導致語法錯誤或未定義的東西。
不要忘記目標是上面的第二個鏈接的地圖..
@harmlessdragon,我終於找到了JSON文件正確的語法:
var markers = [{
"file1": [
{"lat": "number", "lng": "number"}, {"lat": "number", "lng": "number"},
]},{"file2": [
{"lat": "number", "lng": "number"}, {"lat": "number", "lng": "number"},
]},{"file3": [
{"lat": "number", "lng": "number"}, {"lat": number, lng: number"}
]
}];
我見並提示第一個循環識別出正確數量的「文件」。現在的問題是,任何進入第二循環:
for (var t = 0; t < markers[i].length; t++) {
跟着你的問題的鏈接,但我沒有找到任何json文件腳本標記引用。正如@harmlessdragon建議的那樣,你可以在你的問題中添加更多的代碼嗎? –