kyo*_*kyo 6 javascript php jquery google-maps-api-3 google-maps-markers
一组用户地址
array:5 [?
0 => array:2 [?
"name" => " Admin"
"address" => "111 Park AveFloor 4 New York, NY"
]
1 => array:2 [?
"name" => "User A"
"address" => "12 Main Street Cambridge, MA"
]
2 => array:2 [?
"name" => "Apple HQ"
"address" => "1 Infinite Loop Cupertino, California"
]
3 => array:2 [?
"name" => "Google MA"
"address" => "355 Main St Cambridge, MA"
]
4 => array:2 [?
"name" => "site HQ"
"address" => "300 Concord Road Billerica, MA "
]
]
Run Code Online (Sandbox Code Playgroud)
是抢lat,和lng每一个地址,构建这样的事情
[
["Admin", 18.3114513, -66.9219513, 0],
["User A", 25.3253982, 44.5503772, 1],
["Apple HQ", 33.0241101, 39.5865834, 2],
["Google MA", 43.9315743, 20.2366877, 3],
["site HQ", 32.683063, 35.27481, 4]
]
Run Code Online (Sandbox Code Playgroud)
所以我可以在Google Map中绘制它们.
做一个卷曲
https://maps.googleapis.com/maps/api/geocode/json?address='.$address.'&key=***
Run Code Online (Sandbox Code Playgroud)
$data = shell_exec('curl '.$url);
这个作为回应,在解码之后
$data = json_decode($data);
{#278 ?
+"results": array:1 [?
0 => {#298 ?
+"address_components": array:2 [?]
+"formatted_address": "PR-111, Puerto Rico"
+"geometry": {#300 ?
+"bounds": {#301 ?}
+"location": {#304 ?
+"lat": 18.3114513
+"lng": -66.9219513
}
+"location_type": "GEOMETRIC_CENTER"
+"viewport": {#305 ?}
}
+"place_id": "ChIJrdMXucS4AowRF4jHu2ji58U"
+"types": array:1 [?]
}
]
+"status": "OK"
}
Run Code Online (Sandbox Code Playgroud)
如您所见,现在我可以通过访问来访问lat,lng
$location = $data->results[0]->geometry->location;
您可能会说,如果您可以访问它 - 为什么还要问这个问题?
好吧,我从API响应中获取的lat,lng数据会产生错误的Google Map Marker.
我不确定为什么/如何出错,但我确信我的所有用户地址都在美国,这是我的Google地图标记结果.他们都没有在美国境内展示.
我现在已经没想完了.
任何提示/帮助/建议对我来说都意味着很多.
感谢这个答案
我现在可以在我的谷歌地图上获得lat,lng和绘制正确的标记.
在将地址传递给curl 之前,您应该对其进行url 编码。
urlencode($address);
Run Code Online (Sandbox Code Playgroud)
地址中的空格如果不进行编码可能会导致不可预测的问题。
以下是所发生情况的示例:
没有url编码:
curl https://maps.googleapis.com/maps/api/geocode/json?address=111 Park AveFloor 4 New York, NY
{
"results" : [
{
"address_components" : [
{
"long_name" : "111",
"short_name" : "PR-111",
"types" : [ "route" ]
},
{
"long_name" : "Puerto Rico",
"short_name" : "PR",
"types" : [ "country", "political" ]
}
],
"formatted_address" : "PR-111, Puerto Rico",
"geometry" : {
"bounds" : {
"northeast" : {
"lat" : 18.4485405,
"lng" : -66.6643718
},
"southwest" : {
"lat" : 18.2420721,
"lng" : -67.15701799999999
}
},
"location" : {
"lat" : 18.3114513,
"lng" : -66.9219513
},
"location_type" : "GEOMETRIC_CENTER",
"viewport" : {
"northeast" : {
"lat" : 18.4485405,
"lng" : -66.6643718
},
"southwest" : {
"lat" : 18.2420721,
"lng" : -67.15701799999999
}
}
},
"place_id" : "ChIJrdMXucS4AowRF4jHu2ji58U",
"types" : [ "route" ]
}
],
"status" : "OK"
}
Run Code Online (Sandbox Code Playgroud)
使用 url 编码:
curl https://maps.googleapis.com/maps/api/geocode/json?address=111+Park+AveFloor+4+New+York%2C+NY
{
"results" : [
{
"address_components" : [
{
"long_name" : "111",
"short_name" : "111",
"types" : [ "street_number" ]
},
{
"long_name" : "Park Avenue",
"short_name" : "Park Ave",
"types" : [ "route" ]
},
{
"long_name" : "Midtown East",
"short_name" : "Midtown East",
"types" : [ "neighborhood", "political" ]
},
{
"long_name" : "Manhattan",
"short_name" : "Manhattan",
"types" : [ "sublocality_level_1", "sublocality", "political" ]
},
{
"long_name" : "New York",
"short_name" : "New York",
"types" : [ "locality", "political" ]
},
{
"long_name" : "New York County",
"short_name" : "New York County",
"types" : [ "administrative_area_level_2", "political" ]
},
{
"long_name" : "New York",
"short_name" : "NY",
"types" : [ "administrative_area_level_1", "political" ]
},
{
"long_name" : "United States",
"short_name" : "US",
"types" : [ "country", "political" ]
},
{
"long_name" : "10170",
"short_name" : "10170",
"types" : [ "postal_code" ]
}
],
"formatted_address" : "111 Park Ave, New York, NY 10170, USA",
"geometry" : {
"bounds" : {
"northeast" : {
"lat" : 40.7522096,
"lng" : -73.9773591
},
"southwest" : {
"lat" : 40.7521971,
"lng" : -73.97736809999999
}
},
"location" : {
"lat" : 40.7521971,
"lng" : -73.97736809999999
}...
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
133 次 |
| 最近记录: |