英文:
Google map Canada country state boundary not generate
问题
Here are the translated portions of the content you provided:
- 我们已经尝试为加拿大国家设置州边界,但没有生成,我们必须使用谷歌地图的边界样式多边形API,链接如下:https://developers.google.com/maps/documentation/javascript/dds-boundaries/style-polygon。
- 我们已经检查了其他国家的代码,但只有在加拿大,它不起作用。
- 帮助我解决这个问题。
- 下面我们已经提到了应用谷歌地图的代码。
Please let me know if you need any further assistance with this code or if you have any specific questions.
英文:
- We have tried to set state boundary for the canada country but it's not generated we have to use the boundary style polygon api for google map " https://developers.google.com/maps/documentation/javascript/dds-boundaries/style-polygon ".
- We have checked that code for other countries and it works well but only in Canada, it's not working.
- help me to solve this issue.
- Below we have mentioned the code for Alppy the Google map.
//Index.js File
let map;
var marker;
let featureLayer;
const lat = lats[0];
const lng =lngs[0];
console.log(lats[0] , lngs[0],place_id,city);
console.log(typeof lng,typeof lat,typeof place_id ,typeof city);
async function initMap() {
const { Map } = await google.maps.importLibrary("maps");
map = new Map(document.getElementById("map"), {
center: {
// // Atlanta Usa
// lat: 33.748783,
// lng: -84.388168,
lat: lat,
lng: lng,
},
zoom:12,
mapId: "8f7f6d57a786f81a",
});
featureLayer = map.getFeatureLayer("LOCALITY");
const featureStyleOptions = {
strokeColor: "#810FCB",
strokeOpacity: 1.0,
strokeWeight: 3.0,
fillColor: "#810FCB",
fillOpacity: 0.5,
};
featureLayer.style = (options) => {
// Atlanta USA
//if (options.feature.placeId == 'ChIJjQmTaV0E9YgRC2MLmS_e_mY') {
// return featureStyleOptions;
// }
// Stettler Canada
if (options.feature.placeId == place_id) {
return featureStyleOptions;
}
};
var point = new google.maps.LatLng(
parseFloat(lat),
parseFloat(lng));
var marker = new google.maps.Marker({
position: {
lat: lat,
lng: lng
},
map: map,
title: 'Old Highway 80 Overpass',
animation: google.maps.Animation.DROP
});
marker.addListener('click', function() {
infowindow.open(map, marker);
});
}
initMap();
//Index.blade.php File
@php
$app_url = config('app.url');
$google_map_key = config('services.google.google_map_api_key');
$map_details = get_lat_long($areas->city);
$place_id = $map_details['place_id'];
if (Auth::user()->role_id != null) {
foreach ($areas as $key => $area) {
$area_id = Auth::user()->role_id == null ? $area : $area->region_id;
$area = App\Models\Region::where('id', $area_id)->first();
$area_ids[] = $area->id;
$lat[] = floatval($area->latitude);
$lng[] = floatval($area->longitude);
}
} else {
$area_ids[] = $areas->id;
$lat[] = floatval($areas->latitude);
$lng[] = floatval($areas->longitude);
}
@endphp
<div class="row mt-5">
<div class="col-sm-12">
<div id="map" class="responsive-map-container"></div>
</div>
</div>
<script>
let area_ids = {!! json_encode($area_ids) !!};
let lats = {!! json_encode($lat) !!};
let lngs = {!! json_encode($lng) !!};
let place_id = {!! json_encode($place_id) !!}
let city = {!! json_encode($areas->city) !!}
</script>
<script src="https://polyfill.io/v3/polyfill.min.js?features=default"></script>
<script>
let gkey = {!! json_encode($google_map_key) !!};
(g => {
var h, a, k, p = "The Google Maps JavaScript API",
c = "google",
l = "importLibrary",
q = "__ib__",
m = document,
b = window;
b = b[c] || (b[c] = {});
var d = b.maps || (b.maps = {}),
r = new Set,
e = new URLSearchParams,
u = () => h || (h = new Promise(async (f, n) => {
await (a = m.createElement("script"));
e.set("libraries", [...r] + "");
for (k in g) e.set(k.replace(/[A-Z]/g, t => "_" + t[0].toLowerCase()), g[k]);
e.set("callback", c + ".maps." + q);
a.src = `https://maps.${c}apis.com/maps/api/js?` + e;
d[q] = f;
a.onerror = () => h = n(Error(p + " could not load."));
a.nonce = m.querySelector("script[nonce]")?.nonce || "";
m.head.append(a)
}));
d[l] ? console.warn(p + " only loads once. Ignoring:", g) : d[l] = (f, ...n) => r.add(f) && u().then(() =>
d[l](f, ...n))
})
({
key: gkey,
v: "weekly"
});
</script>
<script src="{{ asset('assets/js/map/map_index.js') }}"></script>
Above we have mentioned the code for the generate the marker and state boundary.
答案1
得分: 2
你不能根据你想要的加拿大地区来标记边界。背后的原因是 Google 地图无法在其各个级别,如行政区域2、地区和邮政编码级别的地方地图上显示边界。Google 地图只允许我们在国家和行政区域1级别上进行边界标记。
另外,你可以在这里使用 Google 地图控制台提供的下面参考实时演示来进行更多现实案例的检查。
Google 边界覆盖测试 URL: https://developers.google.com/maps/documentation/javascript/dds-boundaries/coverage
英文:
You can not mark boundaries as per the region you want for Canada country. The reason behind it is Google Maps is not having accessibility to display boundaries at its various levels such as Administrative Area 2, Locality & Postal code level of the area with its map. Google map only allows us to perform boundary marking on the Country & Administrative Area 1 level.
Additionally, you can check it with more reality cases over here using this below reference live demonstration provided by the Google Map console.
Google boundaries coverage Test URL: https://developers.google.com/maps/documentation/javascript/dds-boundaries/coverage
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论