|
|
|
รบกวนถามเรื่อง Google map ด้วยค่ะ ดึงหมุดจากฐานข้อมูลแล้วไม่ขึ้น |
|
|
|
|
|
|
|
https://www.thaicreate.com/php/forum/061774.html
จากที่ลองศึกษาจากหัวข้อนี้ค่ะ ลองนำมาใช้ดู แต่ฐานข้อมูลเราเป็น Mssql อ่ะค่ะ พอดึงหมุดจากฐานข้อมูลแล้ว มันไม่แสดงน่ะคะ ขึ้นมาแต่แผนที่อย่างเดียว รบกวนช่วยดูให้หน่อย ว่าเราทำผิดตรงไหนหรือเปล่า
Code (PHP)
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
<title>Google Map Test by Deawx</title>
<script src="http://maps.google.com/maps/api/js?sensor=false" type="text/javascript"></script>
<style>
html {
height: auto;
}
body {
height: auto;
margin: 0;
padding: 0;
}
#map {
height: auto;
position: absolute;
bottom:0;
left:0;
right:0;
top:0;
}
@media print {
#map {
height: 950px;
}
}
</style>
</head>
<body>
<div id="map"></div>
<script type="text/javascript">
var locations = [
<?php
include("dbcon.php");
$strSQL="SELECT * FROM LocationTravel ";
$objQuery = mssql_query($strSQL) or die ("Error Query [".$strSQL."]");
$objResult = mssql_fetch_array($objQuery);
?>
['<?=$objResult["Name_locat"];?>',<?=$objResult["lat"];?>, <?=$objResult["lng"];?>]
];
var map = new google.maps.Map(document.getElementById('map'), {
zoom: 13,
center: new google.maps.LatLng(14.972149187588654,102.07225799560547),
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][1], locations[i][2]),
title : locations[i][0],
icon : 'http://maps.google.com/mapfiles/kml/pal3/icon48.png',
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>
</body>
</html>
Tag : PHP, Ms SQL Server 2008
|
|
|
|
|
|
Date :
2012-02-23 12:14:14 |
By :
erlare |
View :
1272 |
Reply :
13 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ผิดที่ ถ้ามีหมุดหลายหมุด เราต้องคั่นด้วยลูกน้ำ (,) ในแต่ละหมุดครับ
หากมีหมุดเดียว มันจะขึ้นให้ ถ้าแบบนั้น
|
|
|
|
|
Date :
2012-02-23 16:51:46 |
By :
deawx |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
คั่นตรงไหนอ่า...
|
|
|
|
|
Date :
2012-02-23 22:14:30 |
By :
kaiba |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
แต่เราก้อลองกำหนดให้ id ขึ้นมาตค่าเดียวแล้วนะ มันก้อยังไม่แสดงอ่า
|
|
|
|
|
Date :
2012-02-23 22:23:06 |
By :
erlare |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
https://www.thaicreate.com/community/google-map-earth-multiple-marker.html อัปเดตให้ใช้ google earth ด้วย
https://www.thaicreate.com/community/google-map-multiplemarker.html จะอ้างอิงจากลิงค์นี้เป็นหลักนะครับ
Code (PHP)
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
<title>Google Map Test by Deawx</title>
<script src="http://maps.google.com/maps/api/js?sensor=false" type="text/javascript"></script>
<style>
html {
height: auto;
}
body {
height: auto;
margin: 0;
padding: 0;
}
#map {
height: auto;
position: absolute;
bottom:0;
left:0;
right:0;
top:0;
}
@media print {
#map {
height: 950px;
}
}
</style>
</head>
<body>
<div id="map"></div>
<script type="text/javascript">
var locations = [
<?php
include("dbcon.php");
$strSQL="SELECT * FROM LocationTravel ";
$objQuery = mssql_query($strSQL) or die ("Error Query [".$strSQL."]");
$objResult = mssql_fetch_array($objQuery);
?>
['<?=$objResult["Name_locat"];?>', <?=$objResult["lat"];?>, <?=$objResult["lng"];?>, 1],
];
var map = new google.maps.Map(document.getElementById('map'), {
zoom: 13,
center: new google.maps.LatLng(15.105355046221582, 104.31570053100586),
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][1], 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>
</body>
</html>
ให้ลองสักเกตุโค้ดต้นฉบับ กับของเราดูนะครับ ว่ามันตกตรงใหน ที่ตัวแปรไม่ครบ ตัวกำหนด Element array ตัวใหนไม่ครบอะจ้า
|
|
|
|
|
Date :
2012-02-23 23:56:04 |
By :
deawx |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
อลงเอาโค๊ดที่คุณพี่ให้มาไปทำดูแล้ว แต่ก็ยังไม่ขึ้นอยู่ดีอ่ะคะ
|
|
|
|
|
Date :
2012-02-24 00:15:53 |
By :
erlare |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
บรรทัดที่ 44 ['<?=$objResult["Name_locat"];?>', <?=$objResult["lat"];?>, <?=$objResult["lng"];?>, 1]
ตัด , ออกครับ เกินไป ตัวหนึ่ง
|
ประวัติการแก้ไข 2012-02-24 01:44:54
|
|
|
|
Date :
2012-02-24 01:43:28 |
By :
deawx |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
คุณพี่หมายถึงหลังสุดป่าวคะที่ให้ตัด ตัดแล้ว มันก็ไม่ขึ้นเหมือนเดิมอ่ะคะ
เลยลองทำแบบนี้ดู
['<?=$objResult["Name_locat"];?>', <?=$objResult["lat"];?>,<?=$objResult["lng"];?>,1],
['<?=$objResult["Name_locat"];?>', <?=$objResult["lat"];?>,<?=$objResult["lng"];?>,2],
ปรากฏว่ามันออกหมุดเดียว คือค่าแรกในฐานข้อมูล
เหมือนว่ามันไม่ดึงบรรทัดแรกมาค่ะ ดึงบรรทัดที่สองมา แต่ลบออกให้เหลือบรรทัดเดียวก้อจะไม่ออกเหมือนเดิม
|
|
|
|
|
Date :
2012-02-24 02:06:10 |
By :
erlare |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ดูตามลิงค์ตัวอย่าง แล้วนำไปประยุกต์ได้เลยจ๊ะ
|
|
|
|
|
Date :
2012-02-24 10:51:39 |
By :
deawx |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ขอบคุณค่ะ แต่ก็ยังไม่ได้อยุ่ดี อิอิ
|
|
|
|
|
Date :
2012-02-24 20:38:45 |
By :
erlare |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ตอนนี้ลองใส่ while ให้วน
$objResult = mssql_fetch_array($objQuery);
ปรากฏว่า หมุดที่ออกเป็น ข้อมูลสุดท้ายในตารางเรา
แลวก็ออกมาอันเดียว หุหุ
สู้ต่อไป
|
|
|
|
|
Date :
2012-02-24 23:10:52 |
By :
erlare |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
เริ่มเดินเป็นก้าวแรกได้แล้ว ... เด่วอีกหน่อยก็ไปก้าวสอง หละจ้า .. สู้ ๆ
|
|
|
|
|
Date :
2012-02-25 00:00:49 |
By :
deawx |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ทำไมมันถึงออกมาแค่ค่าสุดท้ายอ่ะคะ
พอเอา while ออก มันก้ออกแค่ค่าแรกค่าเดียวอีก
|
|
|
|
|
Date :
2012-02-25 03:21:13 |
By :
erlare |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ได้แล้วนะคะ กว่าจาได้ เกือบตาย ต้องใส่ , ด้วยอ่ค่ะ ถึงจาออก
Code (PHP)
<?
session_start();
?>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-874" />
<title>Google Map Test by Deawx</title>
<script src="http://maps.google.com/maps/api/js?sensor=false" type="text/javascript"></script>
<style>
html {
height: auto;
}
body {
height: auto;
margin: 0;
padding: 0;
}
#map {
width:800px;
height:600px;
margin:auto;
}
}
</style>
</head>
<script type="text/javascript">
function init() {
var map = new google.maps.Map(document.getElementById('map'), {
zoom: 13,
center: new google.maps.LatLng(14.972149187588654,102.07225799560547),
mapTypeId: google.maps.MapTypeId.ROADMAP
});
<?php
include("dbcon.php");
$strSQL="SELECT * FROM LocationTravel ";
$objQuery = mssql_query($strSQL) or die ("Error Query [".$strSQL."]");
?>
var locations = [
<? while( $objResult= mssql_fetch_array($objQuery)){?>
['<?=$objResult['Name_locat'];?>',<?=$objResult['lat'];?>,<?=$objResult['lng']; ?>,1] , <? }?>
];
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][1], locations[i][2]),
draggable : false,
title : locations[i][0],
icon : 'http://maps.google.com/mapfiles/kml/pal3/icon48.png',
map:map
});
google.maps.event.addListener(marker, 'click', (function(marker, i) {
return function() {
infowindow.setContent(locations[i][0]);
infowindow.open(map, marker);
}
})
(marker, i));
}
}
google.maps.event.addDomListener(window, 'load', init);
</script>
<body>
<div id="map"></div>
</body>
</html>
|
|
|
|
|
Date :
2012-02-25 03:39:20 |
By :
erlare |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 02
|