Google maps api 3 kml无法在google地图上正确渲染

Google maps api 3 kml无法在google地图上正确渲染,google-maps-api-3,kml,cache-control,Google Maps Api 3,Kml,Cache Control,我已经在谷歌地图上建立了kml。问题是当用户开始放大和缩小世界上的特定区域,并在kml加载的同时平移地图时,kml是透明的。如果你知道它在哪里,你仍然可以点击它,但你看不到它 如果你浏览到世界上的澳大利亚地区,放大并环视整个大陆,问题就会出现。当用户这么快做时,就会发生这种情况 在map dir下的htaccess <ifModule mod_gzip.c> mod_gzip_on Yes mod_gzip_dechunk Yes mod_gzip_item_include file

我已经在谷歌地图上建立了kml。问题是当用户开始放大和缩小世界上的特定区域,并在kml加载的同时平移地图时,kml是透明的。如果你知道它在哪里,你仍然可以点击它,但你看不到它

如果你浏览到世界上的澳大利亚地区,放大并环视整个大陆,问题就会出现。当用户这么快做时,就会发生这种情况

在map dir下的htaccess

<ifModule mod_gzip.c>
mod_gzip_on Yes
mod_gzip_dechunk Yes
mod_gzip_item_include file .(html?|txt|css|js|php|pl)$
mod_gzip_item_include handler ^cgi-script$
mod_gzip_item_include mime ^text/.*
mod_gzip_item_include mime ^application/x-javascript.*
mod_gzip_item_exclude mime ^image/.*
mod_gzip_item_exclude rspheader ^Content-Encoding:.*gzip.*
</ifModule>

<IfModule mod_deflate.c>
  # Compress HTML, CSS, JavaScript, Text, XML and fonts
  AddOutputFilterByType DEFLATE application/javascript
  AddOutputFilterByType DEFLATE application/rss+xml
  AddOutputFilterByType DEFLATE application/vnd.ms-fontobject
  AddOutputFilterByType DEFLATE application/x-font
  AddOutputFilterByType DEFLATE application/x-font-opentype
  AddOutputFilterByType DEFLATE application/x-font-otf
  AddOutputFilterByType DEFLATE application/x-font-truetype
  AddOutputFilterByType DEFLATE application/x-font-ttf
  AddOutputFilterByType DEFLATE application/x-javascript
  AddOutputFilterByType DEFLATE application/xhtml+xml
  AddOutputFilterByType DEFLATE application/xml
  AddOutputFilterByType DEFLATE font/opentype
  AddOutputFilterByType DEFLATE font/otf
  AddOutputFilterByType DEFLATE font/ttf
  AddOutputFilterByType DEFLATE image/svg+xml
  AddOutputFilterByType DEFLATE image/x-icon
  AddOutputFilterByType DEFLATE text/css
  AddOutputFilterByType DEFLATE text/html
  AddOutputFilterByType DEFLATE text/javascript
  AddOutputFilterByType DEFLATE text/plain
  AddOutputFilterByType DEFLATE text/xml
</IfModule>

mod_gzip_on Yes
是的
mod|gzip|item|u include file.(html?| txt | css | js | php | pl)$
mod_gzip_item_包含处理程序^cgi脚本$
mod_gzip_项目包括mime^text/*
mod_gzip_item_包括mime^application/x-javascript*
mod_gzip_项_排除mime^image/*
mod_gzip_item_排除rspheader^内容编码:.*gzip*
#压缩HTML、CSS、JavaScript、文本、XML和字体
AddOutputFilterByType DEFLATE应用程序/javascript
AddOutputFilterByType DEFLATE应用程序/rss+xml
AddOutputFilterByType DEFLATE应用程序/vnd.ms-fontobject
AddOutputFilterByType放气应用程序/x-font
AddOutputFilterByType放气应用程序/x-font-opentype
AddOutputFilterByType放气应用程序/x-font-otf
AddOutputFilterByType放气应用程序/x-font-truetype
AddOutputFilterByType放气应用程序/x-font-ttf
AddOutputFilterByType DEFLATE应用程序/x-javascript
AddOutputFilterByType DEFLATE应用程序/xhtml+xml
AddOutputFilterByType DEFLATE应用程序/xml
AddOutputFilterByType泄气字体/opentype
AddOutputFilterByType DEFLATE字体/otf
AddOutputFilterByType DEFLATE字体/ttf
AddOutputFilterByType DEFLATE image/svg+xml
AddOutputFilterByType放气图像/x图标
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE text/javascript
AddOutputFilterByType泄气文本/普通
AddOutputFilterByType DEFLATE text/xml
根目录下的htaccess

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_URI} !=/server-status
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

# END WordPress

BrowserMatch MSIE ie
Header set X-UA-Compatible: IE=Edge
Header set X-UA-Compatible "IE=Edge,chrome=1" env=ie

# Disable Directory Browsing
Options All -Indexes

#needed for knowledge map
Header add "Access-Control-Allow-Origin" "*"
#Header set Access-Control-Allow-Headers "Origin, X-Requested-With, Content-Type, Accept"

#ModPagespeedEnableFilters lazyload_images




#http://crunchify.com/how-to-speed-up-wordpress-leveraging-browser-caching-via-htaccess/
Header unset Pragma
Header unset ETag
FileETag None



<IfModule mod_headers.c>
# WEEK
<FilesMatch "\.(jpg|jpeg|png|gif|swf|js|css)$">
    Header set Cache-Control "max-age=604800, public"

# 1day
#    Header set Cache-Control "max-age=86400, public"
</FilesMatch>
</IfModule>

## EXPIRES CACHING ##

<IfModule mod_expires.c>
ExpiresActive On
ExpiresByType image/jpg "access 1 weeks"
ExpiresByType image/jpeg "access 1 weeks"
ExpiresByType image/gif "access 1 weeks"
ExpiresByType image/png "access 1 weeks"
ExpiresByType text/css "access 1 days"
ExpiresByType text/html "access 1 weeks"
ExpiresByType application/pdf "access 1 weeks"
ExpiresByType text/x-javascript "access plus 1 days"
ExpiresByType application/x-shockwave-flash "access 1 months"
ExpiresByType image/x-icon "access 1 years"
ExpiresDefault "access 2 days"
</IfModule>
## EXPIRES CACHING ##
#开始WordPress
重新启动发动机
重写基/
重写规则^index\.php$-[L]
重写cond%{REQUEST_URI}=/服务器状态
重写cond%{REQUEST_FILENAME}-F
重写cond%{REQUEST_FILENAME}-D
重写规则/index.php[L]
#结束WordPress
浏览器
标题集X-UA-兼容:IE=Edge
标题集X-UA-兼容“IE=Edge,chrome=1”env=IE
#禁用目录浏览
选项所有-索引
#需要知识地图
标题添加“访问控制允许来源”“*”
#标题集访问控制允许标题“来源、X请求、内容类型、接受”
#ModPagespeedEnableFilters lazyload_图像
#http://crunchify.com/how-to-speed-up-wordpress-leveraging-browser-caching-via-htaccess/
标题未设置Pragma
标题未设置ETag
FileTag无
#周
标题集缓存控制“最大年龄=604800,公共”
#1天
#标题集缓存控制“最大年龄=86400,公共”
##过期缓存##
过期于
ExpiresByType图像/jpg“访问1周”
过期按类型图像/jpeg“访问1周”
ExpiresByType image/gif“访问1周”
ExpiresByType图像/png“访问1周”
ExpiresByType文本/css“访问1天”
ExpiresByType text/html“访问1周”
过期按类型应用程序/pdf“访问1周”
ExpiresByType text/x-javascript“访问加1天”
过期按类型应用程序/x-shockwave-flash“访问1个月”
过期按类型图像/x图标“访问1年”
ExpiresDefault“访问2天”
##过期缓存##

放大澳大利亚周边的地图,看起来有很多特色。我怀疑您的KML文件已经非常接近Google将在服务器端呈现的内容。。。或者至少是可以快速渲染的内容

我想到了两个解决方案:

  • 在服务器上将KML渲染为透明分幅,并使用图像覆盖来渲染这些静态分幅,而不是KMLLayer
  • 呈现KML客户端。GeoJSON可能更容易解析,但这些特性看起来像线条和多边形,您可以尝试在JavaScript API中以本机方式呈现它们。如果将KML转换为JSON,该层可能是一个很好的起点

  • 如果使用Kmlayer是您唯一的选择,那么确保您设置了良好的HTTP缓存头并非常快速地为KML提供服务有助于最大限度地减少任何加载延迟。

    是否有任何示例可以让您了解dor编号1。和2。?您能告诉我需要向htaccess添加什么吗?问题已更新为htaccess内容。我不认为我可以做选项1,因为我需要线和多边形是可点击的。我在我的答案中添加了一个链接,讨论如何轻松渲染GeoJSON。我不确定将KML转换为那种格式的最佳方法。如果您的功能需要可点击,我同意#1不是一个很好的选择。你可以这样做,但这很难。这可以转移到地理信息系统,而不是向下投票吗